Kreator poleceń tar

Twórz, rozpakowuj i przeglądaj archiwa tar bez szukania flag.

O tym narzędziu

Wybierz, czy chcesz utworzyć, rozpakować czy wyświetlić archiwum, wybierz kompresję (gzip, bzip2, xz lub zstd), dodaj pliki i wykluczenia, a potem skopiuj polecenie tar z wyjaśnieniem każdej flagi.

Jak z tego korzystać

  1. Wybierz Utwórz, Rozpakuj lub Wyświetl zawartość.
  2. Wybierz kompresję; nazwa archiwum dostanie pasujące rozszerzenie.
  3. Dla nowego archiwum wypisz pliki i foldery do dołączenia oraz ewentualne wzorce wykluczeń.
  4. Skopiuj polecenie i przeczytaj, co robi każda flaga.

Pytania

Jak rozpakować plik .tar.gz?
Uruchom tar -xzvf file.tar.gz. Dodaj -C folder, aby rozpakować w inne miejsce. Nowoczesny GNU tar i tar w macOS same wykrywają kompresję, więc tar -xvf file.tar.gz też zadziała.
Którą kompresję wybrać?
gzip to bezpieczny wybór domyślny, który otworzy się wszędzie. zstd jest zwykle i szybszy, i mniejszy, o ile każda maszyna, która otwiera plik, ma nowy tar. xz daje najmniejsze pliki, ale jest najwolniejszy.
Dlaczego -f musi być na końcu w -czvf?
f traktuje następne słowo jako nazwę archiwum. W -czfv tar uznałby v za nazwę pliku. Trzymaj f na końcu grupy liter.
Co robi --strip-components?
Usuwa początkowe foldery z każdej ścieżki podczas rozpakowywania. Archiwa często zawierają folder główny, np. project-1.2/; --strip-components=1 umieszcza jego zawartość bezpośrednio w folderze docelowym.
Jak zobaczyć zawartość bez rozpakowywania?
Użyj Wyświetl zawartość, co daje tar -tvf archive.tar.gz. Polecenie wypisuje każdy plik z rozmiarem i datą i niczego nie zmienia.
Jak dodać pliki do istniejącego archiwum tar.gz?
Nie da się dopisywać do skompresowanego archiwum. tar -rf dodaje pliki tylko do nieskompresowanego .tar. W przypadku .tar.gz albo utwórz archiwum od nowa z dodatkowymi plikami, albo zdekompresuj je przez gunzip, uruchom tar -rf backup.tar newfile i skompresuj ponownie przez gzip.
Dlaczego tar zgłasza „Not found in archive”?
Podana ścieżka nie odpowiada dokładnie nazwie żadnego elementu archiwum. Uruchom tar -tzf archive.tar.gz i skopiuj ścieżkę z wyniku: archiwa utworzone przez tar -czf x.tar.gz . zapisują każdą nazwę z ./ na początku, a wiele archiwów ma folder najwyższego poziomu. Wzorce wymagają też --wildcards w GNU tar.
Jak sprawić, by macOS nie dodawał plików ._ do archiwum tar?
tar w macOS (bsdtar) zapisuje rozszerzone atrybuty jako dodatkowe pliki ._, które w Linuksie są tylko bałaganem. Utwórz archiwum z --no-mac-metadata albo ustaw COPYFILE_DISABLE=1 przed poleceniem: COPYFILE_DISABLE=1 tar -czf backup.tar.gz project. W Linuksie i z GNU tar nic się nie zmienia.

Jak utworzyć archiwum tar.gz z folderu?

Uruchom tar -czvf backup.tar.gz src docs package.json, aby spakować wymienione pliki i foldery. Ścieżki są zapisywane tak, jak je wpiszesz, więc używaj ścieżek względnych. Aby zapisać folder bez ścieżki nad nim, najpierw zmień katalog przez -C: tar -czf site.tar.gz -C /var/www html. GNU tar i bsdtar usuwają początkowy / ze ścieżek bezwzględnych, więc archiwum nie nadpisze plików systemowych przy rozpakowaniu.

Aby coś pominąć, dodaj --exclude=node_modules albo --exclude="*.log" i ujmuj wzorce w cudzysłowy, aby powłoka ich nie rozwinęła. Wzorzec bez ukośnika pasuje do tej nazwy na dowolnej głębokości. W GNU tar umieść opcje --exclude przed listą plików, bo dotyczą tylko plików wymienionych po nich. Zapisuj archiwum poza pakowanym folderem, aby tar nie próbował spakować archiwum do samego siebie.

tar.gz czy zip: jaki format archiwum wybrać?

tar zachowuje uniksowe uprawnienia, właścicieli i dowiązania symboliczne, co ma znaczenie przy skryptach i wdrożeniach. Kompresuje wszystkie pliki jako jeden strumień, więc wiele małych, podobnych plików kurczy się bardziej niż w zip. Ceną jest brak dostępu swobodnego: wyświetlenie listy lub rozpakowanie jednego pliku wymaga przeczytania archiwum. zip kompresuje każdy plik osobno i otwiera się natywnie w Windows, choć Windows 10 i nowsze też mają tar.

.tgz to po prostu krótsza nazwa .tar.gz, z dokładnie taką samą zawartością. .tar.bz2 i .tar.xz poświęcają szybkość na rzecz mniejszych plików, a .tar.zst jest szybki i mały, ale wymaga GNU tar 1.31 lub nowszego albo aktualnego bsdtar, z flagą --zstd. Zarówno GNU tar, jak i bsdtar akceptują też -a, które przy tworzeniu archiwum wybiera kompresję na podstawie rozszerzenia pliku.

Jak rozpakować jeden plik z archiwum tar?

Podaj nazwę pliku po archiwum: tar -xzf backup.tar.gz src/config.yml. Ścieżka musi dokładnie odpowiadać temu, co wypisuje tar -tzf backup.tar.gz, łącznie z ewentualnym ./ na początku lub folderem najwyższego poziomu. GNU tar potrzebuje --wildcards, aby używać wzorców takich jak "*.yml", a bsdtar na macOS akceptuje je bezpośrednio. Dodaj -O, aby wypisać plik w terminalu zamiast go zapisywać: tar -xzOf backup.tar.gz src/config.yml.

Zanim rozpakujesz archiwum od kogoś innego, wyświetl jego zawartość. Niektóre archiwa nie mają folderu najwyższego poziomu i wysypują setki plików do bieżącego folderu, a istniejące pliki o tych samych nazwach są nadpisywane bez pytania. Rozpakowuj więc do nowego, pustego folderu: mkdir out, a potem tar -xzf archive.tar.gz -C out. Aby najpierw sprawdzić pobrany plik, porównaj jego SHA-256 w narzędziu Generator skrótów (hash) albo przez sha256sum.

Coś nie działa albo wynik wygląda na błędny? Zgłoś problem z tym narzędziem