@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,946 @@
|
|
|
1
|
+
# Installing tar
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
tar (tape archive) is a command-line utility for creating, extracting, and manipulating archive files. Originally designed for writing data to sequential I/O devices (tape drives), tar has become the standard archiving tool on Unix-like systems. It bundles multiple files and directories into a single archive file while preserving file permissions, ownership, and directory structures.
|
|
6
|
+
|
|
7
|
+
tar is essential for:
|
|
8
|
+
- Creating backups of files and directories
|
|
9
|
+
- Distributing software source code (the ubiquitous `.tar.gz` "tarball" format)
|
|
10
|
+
- Packaging files for transfer across systems
|
|
11
|
+
- Combining with compression tools (gzip, bzip2, xz) for space-efficient archives
|
|
12
|
+
|
|
13
|
+
Two major implementations exist:
|
|
14
|
+
- **GNU tar** - The default on most Linux distributions; feature-rich with GNU extensions
|
|
15
|
+
- **BSD tar (bsdtar)** - The default on macOS and FreeBSD; uses the libarchive library
|
|
16
|
+
|
|
17
|
+
This guide documents tar installation procedures for all platforms supported by DevUtils CLI.
|
|
18
|
+
|
|
19
|
+
## Dependencies
|
|
20
|
+
|
|
21
|
+
### macOS (Homebrew)
|
|
22
|
+
- **Required:**
|
|
23
|
+
- `homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or run `dev install homebrew`
|
|
24
|
+
- **Optional:** None
|
|
25
|
+
- **Auto-installed:** None
|
|
26
|
+
- **Note:** macOS includes BSD tar pre-installed at `/usr/bin/tar`. Homebrew installs GNU tar as `gtar` to avoid conflicts.
|
|
27
|
+
|
|
28
|
+
### Ubuntu (APT/Snap)
|
|
29
|
+
- **Required:** None (APT package manager is pre-installed on Ubuntu)
|
|
30
|
+
- **Optional:** None
|
|
31
|
+
- **Auto-installed:** None
|
|
32
|
+
- **Note:** tar (GNU tar) is pre-installed on all Ubuntu systems as part of the base system.
|
|
33
|
+
|
|
34
|
+
### Raspberry Pi OS (APT/Snap)
|
|
35
|
+
- **Required:** None (APT package manager is pre-installed on Raspberry Pi OS)
|
|
36
|
+
- **Optional:** None
|
|
37
|
+
- **Auto-installed:** None
|
|
38
|
+
- **Note:** tar (GNU tar) is pre-installed on all Raspberry Pi OS systems as part of the base system.
|
|
39
|
+
|
|
40
|
+
### Amazon Linux (DNF/YUM)
|
|
41
|
+
- **Required:** None (DNF/YUM package manager is pre-installed on Amazon Linux)
|
|
42
|
+
- **Optional:** None
|
|
43
|
+
- **Auto-installed:** None
|
|
44
|
+
- **Note:** tar (GNU tar) is pre-installed on all Amazon Linux systems as part of the base system.
|
|
45
|
+
|
|
46
|
+
### Windows (Chocolatey/winget)
|
|
47
|
+
- **Required:** None
|
|
48
|
+
- **Optional:**
|
|
49
|
+
- `chocolatey` - For installing GNU tar tools if needed
|
|
50
|
+
- **Auto-installed:** None
|
|
51
|
+
- **Note:** Windows 10 (version 1803+) and Windows 11 include bsdtar pre-installed at `C:\Windows\System32\tar.exe`.
|
|
52
|
+
|
|
53
|
+
### Git Bash (Manual/Portable)
|
|
54
|
+
- **Required:**
|
|
55
|
+
- `git` - Git for Windows must be installed (GNU tar is bundled with it). Download from https://git-scm.com/download/win or install via `choco install git -y`
|
|
56
|
+
- **Optional:** None
|
|
57
|
+
- **Auto-installed:** None
|
|
58
|
+
- **Note:** Git Bash includes GNU tar at `C:\Program Files\Git\usr\bin\tar.exe`.
|
|
59
|
+
|
|
60
|
+
## Prerequisites
|
|
61
|
+
|
|
62
|
+
Before installing or verifying tar on any platform, ensure:
|
|
63
|
+
|
|
64
|
+
1. **Terminal access** - Required to run commands
|
|
65
|
+
2. **Administrative privileges** - Required for installation (sudo on Linux/macOS, Administrator on Windows)
|
|
66
|
+
3. **Internet connectivity** - Required only if tar is not pre-installed
|
|
67
|
+
|
|
68
|
+
**Note**: tar is pre-installed on most operating systems. The installation steps below verify tar availability and install it only if missing.
|
|
69
|
+
|
|
70
|
+
## Platform-Specific Installation
|
|
71
|
+
|
|
72
|
+
### macOS (Homebrew)
|
|
73
|
+
|
|
74
|
+
#### Prerequisites
|
|
75
|
+
|
|
76
|
+
- macOS 10.15 (Catalina) or later (macOS 14 Sonoma or later recommended)
|
|
77
|
+
- Homebrew package manager installed
|
|
78
|
+
- Terminal access via Terminal.app or iTerm2
|
|
79
|
+
|
|
80
|
+
macOS includes BSD tar pre-installed at `/usr/bin/tar`. This version works well for most use cases. However, if you need GNU tar (for compatibility with Linux systems or specific GNU extensions), install it via Homebrew.
|
|
81
|
+
|
|
82
|
+
If Homebrew is not installed, install it first:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### Installation Steps
|
|
89
|
+
|
|
90
|
+
**Check if tar is already available (BSD tar is pre-installed on macOS):**
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
tar --version
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Expected output showing BSD tar:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**To install GNU tar via Homebrew:**
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
brew install --quiet gnu-tar
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
The `--quiet` flag suppresses non-essential output, making the command suitable for automation scripts.
|
|
109
|
+
|
|
110
|
+
GNU tar is installed with the `g` prefix as `gtar` to avoid conflicts with the system BSD tar. To use GNU tar as the default `tar` command, add the gnubin directory to your PATH:
|
|
111
|
+
|
|
112
|
+
**For Apple Silicon Macs (M1/M2/M3):**
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
echo 'export PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zshrc && source ~/.zshrc
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**For Intel Macs:**
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zshrc && source ~/.zshrc
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### Verification
|
|
125
|
+
|
|
126
|
+
Verify BSD tar (pre-installed):
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
/usr/bin/tar --version
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Verify GNU tar after Homebrew installation:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
gtar --version
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Expected output (version numbers may vary):
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
tar (GNU tar) 1.35
|
|
142
|
+
Copyright (C) 2023 Free Software Foundation, Inc.
|
|
143
|
+
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
144
|
+
This is free software: you are free to change and redistribute it.
|
|
145
|
+
There is NO WARRANTY, to the extent permitted by law.
|
|
146
|
+
|
|
147
|
+
Written by John Gilmore and Jay Fenlason.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
If you added gnubin to PATH, verify `tar` points to GNU tar:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
which tar
|
|
154
|
+
tar --version
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Expected output for Apple Silicon (after PATH modification):
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
/opt/homebrew/opt/gnu-tar/libexec/gnubin/tar
|
|
161
|
+
tar (GNU tar) 1.35
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### Troubleshooting
|
|
165
|
+
|
|
166
|
+
**Problem**: `gtar: command not found` after installation
|
|
167
|
+
|
|
168
|
+
**Solution**: Restart your terminal or source your shell configuration:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
source ~/.zshrc
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Problem**: `tar` still shows BSD tar after adding gnubin to PATH
|
|
175
|
+
|
|
176
|
+
**Solution**: Ensure the gnubin path is added before the system paths. Check your PATH:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
echo $PATH
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
The Homebrew gnubin directory should appear before `/usr/bin`. Restart your terminal after modifying `~/.zshrc`.
|
|
183
|
+
|
|
184
|
+
**Problem**: Archive created on macOS has issues on Linux
|
|
185
|
+
|
|
186
|
+
**Solution**: BSD tar stores extended attributes by default, which may cause issues on Linux. Use these flags when creating archives for cross-platform use:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
tar --disable-copyfile -cvf archive.tar directory/
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Or use GNU tar (`gtar`) for maximum Linux compatibility.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### Ubuntu/Debian (APT)
|
|
197
|
+
|
|
198
|
+
#### Prerequisites
|
|
199
|
+
|
|
200
|
+
- Ubuntu 18.04 LTS or later, or Debian 10 (Buster) or later
|
|
201
|
+
- sudo privileges
|
|
202
|
+
- Internet connectivity (only if tar is not installed)
|
|
203
|
+
|
|
204
|
+
GNU tar is pre-installed on all Ubuntu and Debian systems as part of the core utilities. The steps below verify tar is present and install it if missing.
|
|
205
|
+
|
|
206
|
+
#### Installation Steps
|
|
207
|
+
|
|
208
|
+
**Check if tar is already installed (it should be):**
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
tar --version
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Expected output (version numbers may vary):
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
tar (GNU tar) 1.34
|
|
218
|
+
Copyright (C) 2021 Free Software Foundation, Inc.
|
|
219
|
+
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
220
|
+
This is free software: you are free to change and redistribute it.
|
|
221
|
+
There is NO WARRANTY, to the extent permitted by law.
|
|
222
|
+
|
|
223
|
+
Written by John Gilmore and Jay Fenlason.
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**If tar is not installed (rare), install it:**
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tar
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully automated installation without prompts.
|
|
233
|
+
|
|
234
|
+
#### Verification
|
|
235
|
+
|
|
236
|
+
Confirm tar is available:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
tar --version
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Verify the installation location:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
which tar
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Expected output:
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
/usr/bin/tar
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Test creating and extracting an archive:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
echo "test" > /tmp/testfile.txt
|
|
258
|
+
tar -cvf /tmp/test.tar -C /tmp testfile.txt
|
|
259
|
+
tar -tvf /tmp/test.tar
|
|
260
|
+
rm /tmp/testfile.txt /tmp/test.tar
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
#### Troubleshooting
|
|
264
|
+
|
|
265
|
+
**Problem**: `tar: command not found`
|
|
266
|
+
|
|
267
|
+
**Solution**: Install tar using APT:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tar
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Problem**: `E: Unable to locate package tar`
|
|
274
|
+
|
|
275
|
+
**Solution**: Update the package list:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Problem**: Permission denied when extracting files
|
|
282
|
+
|
|
283
|
+
**Solution**: Use sudo when extracting to system directories:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
sudo tar -xvf archive.tar -C /destination
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
### Raspberry Pi OS (APT)
|
|
292
|
+
|
|
293
|
+
#### Prerequisites
|
|
294
|
+
|
|
295
|
+
- Raspberry Pi OS (Bookworm or Bullseye recommended)
|
|
296
|
+
- Raspberry Pi 2 or later (any model supported by Raspberry Pi OS)
|
|
297
|
+
- sudo privileges
|
|
298
|
+
- Internet connectivity (only if tar is not installed)
|
|
299
|
+
|
|
300
|
+
Raspberry Pi OS is based on Debian, so tar installation follows the Debian/APT method. GNU tar is pre-installed on all Raspberry Pi OS installations.
|
|
301
|
+
|
|
302
|
+
#### Installation Steps
|
|
303
|
+
|
|
304
|
+
First, verify your architecture:
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
uname -m
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
- `aarch64` = 64-bit ARM
|
|
311
|
+
- `armv7l` = 32-bit ARM
|
|
312
|
+
|
|
313
|
+
**Check if tar is already installed (it should be):**
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
tar --version
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Expected output (version numbers may vary):
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
tar (GNU tar) 1.34
|
|
323
|
+
Copyright (C) 2021 Free Software Foundation, Inc.
|
|
324
|
+
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
325
|
+
This is free software: you are free to change and redistribute it.
|
|
326
|
+
There is NO WARRANTY, to the extent permitted by law.
|
|
327
|
+
|
|
328
|
+
Written by John Gilmore and Jay Fenlason.
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**If tar is not installed (rare), install it:**
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tar
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
The installation command is identical for both 32-bit and 64-bit Raspberry Pi OS.
|
|
338
|
+
|
|
339
|
+
#### Verification
|
|
340
|
+
|
|
341
|
+
Confirm tar is available:
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
tar --version
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
Verify the installation location:
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
which tar
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Expected output:
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
/usr/bin/tar
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
#### Troubleshooting
|
|
360
|
+
|
|
361
|
+
**Problem**: `tar: command not found`
|
|
362
|
+
|
|
363
|
+
**Solution**: Install tar using APT:
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tar
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
**Problem**: Extraction is slow on SD card
|
|
370
|
+
|
|
371
|
+
**Solution**: SD cards have limited I/O performance. For better extraction performance, use a high-quality SD card (Class 10 or A1/A2 rated) or boot from USB/SSD.
|
|
372
|
+
|
|
373
|
+
**Problem**: "No space left on device" when extracting
|
|
374
|
+
|
|
375
|
+
**Solution**: Check available disk space before extraction:
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
df -h
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
Clear space if needed:
|
|
382
|
+
|
|
383
|
+
```bash
|
|
384
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove -y
|
|
385
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get clean
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
### Amazon Linux (DNF/YUM)
|
|
391
|
+
|
|
392
|
+
#### Prerequisites
|
|
393
|
+
|
|
394
|
+
- Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
|
|
395
|
+
- sudo privileges
|
|
396
|
+
- EC2 instance or compatible environment
|
|
397
|
+
|
|
398
|
+
Amazon Linux 2023 uses DNF as the default package manager. Amazon Linux 2 uses YUM. GNU tar is pre-installed on all Amazon Linux versions as part of the base system.
|
|
399
|
+
|
|
400
|
+
**Important**: Amazon Linux 2 reaches end of support on June 30, 2026. Migrate to Amazon Linux 2023 for long-term support.
|
|
401
|
+
|
|
402
|
+
#### Installation Steps
|
|
403
|
+
|
|
404
|
+
**Check if tar is already installed (it should be):**
|
|
405
|
+
|
|
406
|
+
```bash
|
|
407
|
+
tar --version
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
Expected output (version numbers may vary):
|
|
411
|
+
|
|
412
|
+
```
|
|
413
|
+
tar (GNU tar) 1.34
|
|
414
|
+
Copyright (C) 2021 Free Software Foundation, Inc.
|
|
415
|
+
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
416
|
+
This is free software: you are free to change and redistribute it.
|
|
417
|
+
There is NO WARRANTY, to the extent permitted by law.
|
|
418
|
+
|
|
419
|
+
Written by John Gilmore and Jay Fenlason.
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**If tar is not installed (rare), install it:**
|
|
423
|
+
|
|
424
|
+
**For Amazon Linux 2023 (AL2023):**
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
sudo dnf install -y tar
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
**For Amazon Linux 2 (AL2):**
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
sudo yum install -y tar
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
The `-y` flag automatically confirms installation, enabling non-interactive execution.
|
|
437
|
+
|
|
438
|
+
#### Verification
|
|
439
|
+
|
|
440
|
+
Confirm tar is available:
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
tar --version
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
Verify the installation location:
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
which tar
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
Expected output:
|
|
453
|
+
|
|
454
|
+
```
|
|
455
|
+
/usr/bin/tar
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Get package information:
|
|
459
|
+
|
|
460
|
+
```bash
|
|
461
|
+
rpm -q tar
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Expected output (version may vary):
|
|
465
|
+
|
|
466
|
+
```
|
|
467
|
+
tar-1.34-1.amzn2023.x86_64
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
#### Troubleshooting
|
|
471
|
+
|
|
472
|
+
**Problem**: `tar: command not found`
|
|
473
|
+
|
|
474
|
+
**Solution**: Install tar using DNF or YUM:
|
|
475
|
+
|
|
476
|
+
```bash
|
|
477
|
+
# For AL2023
|
|
478
|
+
sudo dnf install -y tar
|
|
479
|
+
|
|
480
|
+
# For AL2
|
|
481
|
+
sudo yum install -y tar
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
**Problem**: `No match for argument: tar`
|
|
485
|
+
|
|
486
|
+
**Solution**: Update the package cache and retry:
|
|
487
|
+
|
|
488
|
+
```bash
|
|
489
|
+
# For AL2023
|
|
490
|
+
sudo dnf makecache
|
|
491
|
+
sudo dnf install -y tar
|
|
492
|
+
|
|
493
|
+
# For AL2
|
|
494
|
+
sudo yum makecache
|
|
495
|
+
sudo yum install -y tar
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**Problem**: Cannot find a valid baseurl for repo
|
|
499
|
+
|
|
500
|
+
**Solution**: Check network connectivity and repository configuration:
|
|
501
|
+
|
|
502
|
+
```bash
|
|
503
|
+
# For AL2023
|
|
504
|
+
sudo dnf check-update
|
|
505
|
+
|
|
506
|
+
# For AL2
|
|
507
|
+
sudo yum check-update
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
### Windows (Chocolatey/winget)
|
|
513
|
+
|
|
514
|
+
#### Prerequisites
|
|
515
|
+
|
|
516
|
+
- Windows 10 version 1803 or later, or Windows 11
|
|
517
|
+
- Administrator PowerShell or Command Prompt
|
|
518
|
+
|
|
519
|
+
Windows 10 (version 1803+) and Windows 11 include bsdtar pre-installed at `C:\Windows\System32\tar.exe`. This built-in tar supports common operations and is suitable for most use cases. No additional installation is required.
|
|
520
|
+
|
|
521
|
+
#### Installation Steps
|
|
522
|
+
|
|
523
|
+
**Verify tar is already available (it should be on Windows 10 1803+):**
|
|
524
|
+
|
|
525
|
+
Open Command Prompt or PowerShell and run:
|
|
526
|
+
|
|
527
|
+
```powershell
|
|
528
|
+
tar --version
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
Expected output:
|
|
532
|
+
|
|
533
|
+
```
|
|
534
|
+
bsdtar 3.5.2 - libarchive 3.5.2 zlib/1.2.11 bz2lib/1.0.8 liblzma/5.2.4
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
**Alternative: Using Chocolatey for additional tar tools**
|
|
538
|
+
|
|
539
|
+
If you need specialized tar functionality, TarTool is available via Chocolatey. First, ensure Chocolatey is installed by running this command in an Administrator PowerShell:
|
|
540
|
+
|
|
541
|
+
```powershell
|
|
542
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
Install TarTool:
|
|
546
|
+
|
|
547
|
+
```powershell
|
|
548
|
+
choco install tartool -y
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
|
|
552
|
+
|
|
553
|
+
**Alternative: Using winget for GNU tar**
|
|
554
|
+
|
|
555
|
+
```powershell
|
|
556
|
+
winget install --id GnuWin32.Tar --silent --accept-package-agreements --accept-source-agreements
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
#### Verification
|
|
560
|
+
|
|
561
|
+
Verify the built-in tar:
|
|
562
|
+
|
|
563
|
+
```powershell
|
|
564
|
+
tar --version
|
|
565
|
+
where tar
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
Expected output:
|
|
569
|
+
|
|
570
|
+
```
|
|
571
|
+
bsdtar 3.5.2 - libarchive 3.5.2 zlib/1.2.11 bz2lib/1.0.8 liblzma/5.2.4
|
|
572
|
+
C:\Windows\System32\tar.exe
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
Test creating and extracting an archive:
|
|
576
|
+
|
|
577
|
+
```powershell
|
|
578
|
+
echo "test" > testfile.txt
|
|
579
|
+
tar -cvf test.tar testfile.txt
|
|
580
|
+
tar -tvf test.tar
|
|
581
|
+
del testfile.txt test.tar
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
#### Troubleshooting
|
|
585
|
+
|
|
586
|
+
**Problem**: `'tar' is not recognized as an internal or external command`
|
|
587
|
+
|
|
588
|
+
**Solution**: Ensure you are on Windows 10 version 1803 or later. Check your Windows version:
|
|
589
|
+
|
|
590
|
+
```powershell
|
|
591
|
+
winver
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
If you are on an older version, install tar via Chocolatey or winget as shown above.
|
|
595
|
+
|
|
596
|
+
**Problem**: tar fails with "Cannot read: Invalid argument"
|
|
597
|
+
|
|
598
|
+
**Solution**: Windows bsdtar may have issues with certain path formats. Use forward slashes in paths:
|
|
599
|
+
|
|
600
|
+
```powershell
|
|
601
|
+
tar -cvf archive.tar path/to/files
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
**Problem**: Non-Latin characters in filenames cause issues
|
|
605
|
+
|
|
606
|
+
**Solution**: The Windows built-in bsdtar has known issues with Unicode characters in paths. Consider using 7-Zip or GNU tar from Git Bash for archives with non-ASCII filenames.
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
### WSL (Ubuntu)
|
|
611
|
+
|
|
612
|
+
#### Prerequisites
|
|
613
|
+
|
|
614
|
+
- Windows 10 version 2004 or higher, or Windows 11
|
|
615
|
+
- WSL 2 enabled with Ubuntu distribution installed
|
|
616
|
+
- sudo privileges within WSL
|
|
617
|
+
|
|
618
|
+
WSL runs Ubuntu (or another Linux distribution) within Windows. GNU tar is pre-installed in WSL Ubuntu distributions.
|
|
619
|
+
|
|
620
|
+
#### Installation Steps
|
|
621
|
+
|
|
622
|
+
Open your WSL Ubuntu terminal and verify tar is installed:
|
|
623
|
+
|
|
624
|
+
```bash
|
|
625
|
+
tar --version
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
Expected output (version numbers may vary):
|
|
629
|
+
|
|
630
|
+
```
|
|
631
|
+
tar (GNU tar) 1.34
|
|
632
|
+
Copyright (C) 2021 Free Software Foundation, Inc.
|
|
633
|
+
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
634
|
+
This is free software: you are free to change and redistribute it.
|
|
635
|
+
There is NO WARRANTY, to the extent permitted by law.
|
|
636
|
+
|
|
637
|
+
Written by John Gilmore and Jay Fenlason.
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
**If tar is not installed (rare), install it:**
|
|
641
|
+
|
|
642
|
+
```bash
|
|
643
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tar
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
#### Verification
|
|
647
|
+
|
|
648
|
+
Confirm tar is available:
|
|
649
|
+
|
|
650
|
+
```bash
|
|
651
|
+
tar --version
|
|
652
|
+
which tar
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
Expected output:
|
|
656
|
+
|
|
657
|
+
```
|
|
658
|
+
tar (GNU tar) 1.34
|
|
659
|
+
/usr/bin/tar
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
#### Troubleshooting
|
|
663
|
+
|
|
664
|
+
**Problem**: tar shows different behavior in WSL vs Windows
|
|
665
|
+
|
|
666
|
+
**Solution**: WSL uses GNU tar while Windows uses bsdtar. They have slightly different behaviors. Use WSL tar for Linux-compatible archives and Windows tar for Windows-specific use cases.
|
|
667
|
+
|
|
668
|
+
**Problem**: Extracting archives from Windows filesystem is slow
|
|
669
|
+
|
|
670
|
+
**Solution**: Store archives on the Linux filesystem (e.g., `/home/username`) for best performance. Accessing Windows files via `/mnt/c` has I/O overhead.
|
|
671
|
+
|
|
672
|
+
**Problem**: Permission issues when extracting to Windows drives
|
|
673
|
+
|
|
674
|
+
**Solution**: The Windows filesystem does not support Unix permissions. Extract to the Linux filesystem first, or use the `--no-same-owner` flag:
|
|
675
|
+
|
|
676
|
+
```bash
|
|
677
|
+
tar --no-same-owner -xvf archive.tar -C /mnt/c/destination
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
---
|
|
681
|
+
|
|
682
|
+
### Git Bash (Windows)
|
|
683
|
+
|
|
684
|
+
#### Prerequisites
|
|
685
|
+
|
|
686
|
+
- Windows 10 or Windows 11
|
|
687
|
+
- Git for Windows installed (Git Bash is bundled with it)
|
|
688
|
+
|
|
689
|
+
Git Bash includes GNU tar bundled at `C:\Program Files\Git\usr\bin\tar.exe`. This is separate from the Windows built-in bsdtar. When running commands in Git Bash, the GNU tar takes precedence due to PATH ordering.
|
|
690
|
+
|
|
691
|
+
#### Installation Steps
|
|
692
|
+
|
|
693
|
+
Git for Windows includes GNU tar by default. If Git for Windows is not installed:
|
|
694
|
+
|
|
695
|
+
**Install via Chocolatey (recommended):**
|
|
696
|
+
|
|
697
|
+
```powershell
|
|
698
|
+
choco install git -y
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
The `-y` flag automatically confirms all prompts, enabling non-interactive installation.
|
|
702
|
+
|
|
703
|
+
**Or download from the official website:**
|
|
704
|
+
|
|
705
|
+
Download from https://git-scm.com/download/win and run the installer.
|
|
706
|
+
|
|
707
|
+
After installation, launch Git Bash from the Start Menu.
|
|
708
|
+
|
|
709
|
+
#### Verification
|
|
710
|
+
|
|
711
|
+
Open Git Bash and run:
|
|
712
|
+
|
|
713
|
+
```bash
|
|
714
|
+
tar --version
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
Expected output (version numbers may vary):
|
|
718
|
+
|
|
719
|
+
```
|
|
720
|
+
tar (GNU tar) 1.35
|
|
721
|
+
Copyright (C) 2023 Free Software Foundation, Inc.
|
|
722
|
+
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
723
|
+
This is free software: you are free to change and redistribute it.
|
|
724
|
+
There is NO WARRANTY, to the extent permitted by law.
|
|
725
|
+
|
|
726
|
+
Written by John Gilmore and Jay Fenlason.
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
Verify the location:
|
|
730
|
+
|
|
731
|
+
```bash
|
|
732
|
+
which tar
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
Expected output:
|
|
736
|
+
|
|
737
|
+
```
|
|
738
|
+
/usr/bin/tar
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
This corresponds to `C:\Program Files\Git\usr\bin\tar.exe` on the Windows filesystem.
|
|
742
|
+
|
|
743
|
+
#### Troubleshooting
|
|
744
|
+
|
|
745
|
+
**Problem**: tar command fails with Windows-style paths
|
|
746
|
+
|
|
747
|
+
**Solution**: Git Bash tar requires Unix-style paths. Convert Windows paths:
|
|
748
|
+
|
|
749
|
+
```bash
|
|
750
|
+
# WRONG - will fail
|
|
751
|
+
tar -cvf C:\Users\name\archive.tar files/
|
|
752
|
+
|
|
753
|
+
# CORRECT - use Unix-style paths
|
|
754
|
+
tar -cvf /c/Users/name/archive.tar files/
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
**Problem**: Archive paths contain mixed slashes
|
|
758
|
+
|
|
759
|
+
**Solution**: Git Bash automatically converts paths, which can cause issues. Set `MSYS_NO_PATHCONV` to prevent path conversion:
|
|
760
|
+
|
|
761
|
+
```bash
|
|
762
|
+
MSYS_NO_PATHCONV=1 tar -cvf archive.tar files/
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
**Problem**: `tar: command not found`
|
|
766
|
+
|
|
767
|
+
**Solution**: Git for Windows may not be installed or the Git usr/bin is not in PATH. Reinstall Git for Windows from https://git-scm.com/download/win or via Chocolatey:
|
|
768
|
+
|
|
769
|
+
```powershell
|
|
770
|
+
choco install git -y
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
**Problem**: Conflict between Git Bash tar and Windows tar
|
|
774
|
+
|
|
775
|
+
**Solution**: Git Bash places its tar first in PATH. To explicitly use Windows tar, use the full path:
|
|
776
|
+
|
|
777
|
+
```bash
|
|
778
|
+
/c/Windows/System32/tar.exe --version
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
|
|
783
|
+
## Post-Installation Configuration
|
|
784
|
+
|
|
785
|
+
tar works out of the box with no configuration required. The following tips help with common use cases:
|
|
786
|
+
|
|
787
|
+
### Common tar Commands
|
|
788
|
+
|
|
789
|
+
**Create a compressed archive (.tar.gz):**
|
|
790
|
+
|
|
791
|
+
```bash
|
|
792
|
+
tar -czvf archive.tar.gz directory/
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
**Extract a compressed archive:**
|
|
796
|
+
|
|
797
|
+
```bash
|
|
798
|
+
tar -xzvf archive.tar.gz
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
**List contents of an archive:**
|
|
802
|
+
|
|
803
|
+
```bash
|
|
804
|
+
tar -tvf archive.tar.gz
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
**Extract to a specific directory:**
|
|
808
|
+
|
|
809
|
+
```bash
|
|
810
|
+
tar -xzvf archive.tar.gz -C /destination/path
|
|
811
|
+
```
|
|
812
|
+
|
|
813
|
+
### Understanding tar Flags
|
|
814
|
+
|
|
815
|
+
| Flag | Meaning |
|
|
816
|
+
|------|---------|
|
|
817
|
+
| `-c` | Create a new archive |
|
|
818
|
+
| `-x` | Extract files from an archive |
|
|
819
|
+
| `-t` | List the contents of an archive |
|
|
820
|
+
| `-v` | Verbose output (show files being processed) |
|
|
821
|
+
| `-f` | Specify the archive filename |
|
|
822
|
+
| `-z` | Filter through gzip (for .tar.gz files) |
|
|
823
|
+
| `-j` | Filter through bzip2 (for .tar.bz2 files) |
|
|
824
|
+
| `-J` | Filter through xz (for .tar.xz files) |
|
|
825
|
+
| `-C` | Change to directory before operation |
|
|
826
|
+
|
|
827
|
+
### Cross-Platform Compatibility
|
|
828
|
+
|
|
829
|
+
When creating archives that will be used across different operating systems:
|
|
830
|
+
|
|
831
|
+
**On macOS (for Linux compatibility):**
|
|
832
|
+
|
|
833
|
+
```bash
|
|
834
|
+
tar --disable-copyfile -cvf archive.tar directory/
|
|
835
|
+
```
|
|
836
|
+
|
|
837
|
+
Or use GNU tar:
|
|
838
|
+
|
|
839
|
+
```bash
|
|
840
|
+
gtar -cvf archive.tar directory/
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
**On Linux (standard):**
|
|
844
|
+
|
|
845
|
+
```bash
|
|
846
|
+
tar -cvf archive.tar directory/
|
|
847
|
+
```
|
|
848
|
+
|
|
849
|
+
**On Windows Git Bash:**
|
|
850
|
+
|
|
851
|
+
```bash
|
|
852
|
+
tar -cvf archive.tar directory/
|
|
853
|
+
```
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
## Common Issues
|
|
858
|
+
|
|
859
|
+
### Issue: "tar: Removing leading '/' from member names"
|
|
860
|
+
|
|
861
|
+
**Symptoms**: Warning message when creating archives with absolute paths
|
|
862
|
+
|
|
863
|
+
**Solution**: This is expected behavior, not an error. tar strips leading slashes to prevent extracting files to absolute paths (security feature). To preserve absolute paths (not recommended):
|
|
864
|
+
|
|
865
|
+
```bash
|
|
866
|
+
tar -cvPf archive.tar /absolute/path
|
|
867
|
+
```
|
|
868
|
+
|
|
869
|
+
### Issue: Archive created on macOS fails to extract on Linux
|
|
870
|
+
|
|
871
|
+
**Symptoms**: Errors about extended attributes or unknown headers
|
|
872
|
+
|
|
873
|
+
**Solution**: macOS BSD tar includes Apple-specific metadata. Create archives without extended attributes:
|
|
874
|
+
|
|
875
|
+
```bash
|
|
876
|
+
tar --disable-copyfile --no-xattrs -cvf archive.tar directory/
|
|
877
|
+
```
|
|
878
|
+
|
|
879
|
+
Or install and use GNU tar on macOS:
|
|
880
|
+
|
|
881
|
+
```bash
|
|
882
|
+
brew install --quiet gnu-tar
|
|
883
|
+
gtar -cvf archive.tar directory/
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
### Issue: "tar: Error is not recoverable: exiting now"
|
|
887
|
+
|
|
888
|
+
**Symptoms**: tar exits with error during extraction
|
|
889
|
+
|
|
890
|
+
**Solution**: The archive may be corrupted or truncated. Verify the archive:
|
|
891
|
+
|
|
892
|
+
```bash
|
|
893
|
+
gzip -t archive.tar.gz
|
|
894
|
+
```
|
|
895
|
+
|
|
896
|
+
If the archive is valid, try extracting with verbose output to identify the problematic file:
|
|
897
|
+
|
|
898
|
+
```bash
|
|
899
|
+
tar -xzvf archive.tar.gz
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
### Issue: Permission denied when extracting
|
|
903
|
+
|
|
904
|
+
**Symptoms**: `tar: Cannot open: Permission denied`
|
|
905
|
+
|
|
906
|
+
**Solution**: Use sudo for extracting to system directories, or extract as the file owner:
|
|
907
|
+
|
|
908
|
+
```bash
|
|
909
|
+
sudo tar -xvf archive.tar -C /destination
|
|
910
|
+
```
|
|
911
|
+
|
|
912
|
+
Or extract without preserving ownership:
|
|
913
|
+
|
|
914
|
+
```bash
|
|
915
|
+
tar --no-same-owner -xvf archive.tar
|
|
916
|
+
```
|
|
917
|
+
|
|
918
|
+
### Issue: Filename too long
|
|
919
|
+
|
|
920
|
+
**Symptoms**: `tar: file name is too long`
|
|
921
|
+
|
|
922
|
+
**Solution**: This occurs with older tar formats. Use the POSIX pax format:
|
|
923
|
+
|
|
924
|
+
```bash
|
|
925
|
+
tar --format=posix -cvf archive.tar directory/
|
|
926
|
+
```
|
|
927
|
+
|
|
928
|
+
### Issue: Symlinks not extracted correctly on Windows
|
|
929
|
+
|
|
930
|
+
**Symptoms**: Symlinks become regular files or fail to extract
|
|
931
|
+
|
|
932
|
+
**Solution**: Windows has limited symlink support. Run Git Bash as Administrator for symlink creation, or extract using WSL instead.
|
|
933
|
+
|
|
934
|
+
---
|
|
935
|
+
|
|
936
|
+
## References
|
|
937
|
+
|
|
938
|
+
- [GNU tar Official Documentation](https://www.gnu.org/software/tar/manual/)
|
|
939
|
+
- [GNU tar Manual](https://www.gnu.org/software/tar/manual/tar.html)
|
|
940
|
+
- [BSD tar (libarchive) Documentation](https://www.libarchive.org/)
|
|
941
|
+
- [Homebrew gnu-tar Formula](https://formulae.brew.sh/formula/gnu-tar)
|
|
942
|
+
- [Differences Between BSD tar and GNU tar (Baeldung)](https://www.baeldung.com/linux/bsd-tar-gnu-tar-star)
|
|
943
|
+
- [Microsoft: Tar and Curl Come to Windows](https://devblogs.microsoft.com/commandline/tar-and-curl-come-to-windows/)
|
|
944
|
+
- [Ubuntu tar Manual Page](https://manpages.ubuntu.com/manpages/jammy/man1/tar.1.html)
|
|
945
|
+
- [Chocolatey TarTool Package](https://community.chocolatey.org/packages/tartool)
|
|
946
|
+
- [winget GnuWin32.Tar Package](https://winget.run/pkg/GnuWin32/Tar)
|