Untar, ungz, gz, tar - как вы запомнили все полезные опции?
75509
deadprogrammer
Я почти уверен, что я не единственный, кто сталкивается со следующей проблемой: каждый раз, когда мне нужно распаковать файл в * nix, я не могу вспомнить все параметры и заканчиваю поиском в Google, что удивительно, учитывая, как часто мне нужно сделай это.
У вас есть хорошая шпаргалка? Или как насчет мнемоники для всех этих неприятных переключателей в tar?
Я делаю эту статью вики, чтобы мы могли создать хороший шпаргалку здесь.
О, и о страницах руководства: есть одна вещь, для которой они не полезны, это для того, чтобы выяснить, как распаковать файл.
используйте страницы справочника, тогда вам не нужно создавать вики, нужно только запомнить команду man :-) man (1)
Florenz Kley 13 лет назад
1
eXtract Zee File - это то, как я его помню
Canadian Luke 11 лет назад
6
Создать Zee Vocking File может быть подходящим для создания .tar.gz
CousinCocaine 11 лет назад
0
Или как насчет использования оболочки с расширенными возможностями завершения (например, zsh или свежей версией bash), которая дополнит ваши параметры всесторонней помощью? :))
Что касается tar: просто посмотрите на клавиатуру "qwerty". Есть буквы "zxcvf" рядом друг с другом. Вам нужны либо «tar czvf file.tar.gz файлы», либо «tar xzvf file.tar.gz».
Реквизит для фактического ответа на вопрос :)
16 лет назад
0
Теперь это крутой совет "qwerty"! :)
16 лет назад
0
офигенно круто!
deadprogrammer 16 лет назад
0
Еще один совет: опция `z` (или опция` j` для файлов `.bz2`) не требуется при извлечении с использованием современных версий tar. Он автоматически распаковывает файл.
Nate 15 лет назад
1
Я использовал tar около десяти миллиардов раз и никогда не замечал, что все наиболее часто используемые опции находятся рядом друг с другом на клавиатуре. * Headsmack *
Tyler McHenry 15 лет назад
9
я только что запомнил легкую для запоминания песенку - "ex vee vee zee eff"! но да, я никогда не мог вспомнить, как сделать архив
Claudiu 15 лет назад
0
Одним из советов является то, что последние версии tar автоматически определяют формат при извлечении, поэтому вы можете просто использовать -x для извлечения.
Maxim 7 лет назад
0
39
Adam Pierce
Обзор опций Tar
Вы можете редактировать это, чтобы добавить больше эзотерических переключателей, но вот основы:
x - извлечь файлы
c - создать архив
t - список файлов
v - подробный (список файлов по мере их обработки)
j - использовать сжатие bz2
z - использовать сжатие gz
f - читать или записывать файлы на диск
Примеры
Распакуйте файл tar.gz: tar zxf tarball.tar.gz
Распакуйте файл tar.bz2: tar jxf tarball.tar.bz2
Создайте файл tar.gz: tar zcvf tarvall.tar.gz mydir / *
22
Есть небольшой скрипт на Perl под названием «unp».
unp filename.tar.gz
... и это все извлекает. Работает с любым сжатым файлом, если у вас есть нужные двоичные файлы. И ты просто забываешь о синтаксисе или любом другом дерьме. Проверьте репозитории вашего дистрибутива Linux. Это должно быть там (по крайней мере, в Arch, Debian и Ubuntu).
Круто, это ново для меня. Спасибо за чаевые!
16 лет назад
0
Даже после долгого использования tar мне все равно нужно гуглить из-за глупых флагов. Unp это путь.
Yada 9 лет назад
0
6
Jeremy Ruten
Просто напечатайте tar --helpи вот ваш чит-лист.
серьезно, ты когда-нибудь пробовал читать эту справочную страницу?
deadprogrammer 16 лет назад
11
Это может быть немного нечитаемо и долго, но я думаю, что это хорошо работает только для поиска названия опции. Вы также можете использовать опцию, которую вы ищете, например, 'tar --help | grep extract '.
Jeremy Ruten 16 лет назад
0
действительно? как бы вы вывели из этого tar -xvf?
deadprogrammer 16 лет назад
0
Отлично. А затем вам нужно пройтись по man-странице, которая (среди того, что вы ищете) расскажет вам тонны архаичных команд и опций стримера, которых нет ни у кого, кроме потребностей разработчика.
16 лет назад
1
Ну, похоже, это работает для меня (с tar, а также с другими программами linux ocmmand-line). Я просто использую опцию --help или man и сканирую нужную мне информацию, и это всегда хорошо для меня работает. Если есть слишком много бесполезной информации, я просто пропускаю ее.
Jeremy Ruten 16 лет назад
0
Джереми, ты либо аутист-ученый, либо полностью полон дерьма. Выделение человеком дегтя хуже, чем бесполезного, но и его использование бесполезно.
deadprogrammer 16 лет назад
0
Я действительно не понимаю, что в этом такого сложного. Чтобы извлечь архив, просто найдите опцию extract и добавьте -x к вашей команде. Если вы хотите, чтобы он был подробным, найдите эту опцию и добавьте av, чтобы получить -xv. Затем продолжайте, пока не получите точную команду, которую вы хотите. У него даже есть примеры команд для общих операций.
Jeremy Ruten 16 лет назад
2
Джереми, настоящая проблема в том, что ты не всегда знаешь правильный словарный запас. Таким образом, легко запутаться, найти похожие варианты и заставить их не работать. Затем вы должны разместить (некоторые) из них в правильном порядке. Это нетривиально для тех, кто мигрирует из Windows. Тем более, если они не знали скриптов в Windows.
Nazadus 15 лет назад
1
6
Ali Mezgani
Действительно при частом использовании я делаю различие между извлечением (x) данных и сжатием (c) данных:
Извлекать:
tar xzf data.tgz
Сжать:
tar czf data.tgz
Кроме того, вы можете добавить две функции в ваш .bashrc:
function extract () { if ($# -ne 1); then echo "Usage: $0 `<compressed archive>"` exit 1 fi tar xzf $1 } function compress () { if ($# -ne 2); then echo "Usage: $0 `<compressed archive> <files|directories>"` exit 1 fi tar czf $1 $2 }
Есть еще одна приятная функция извлечения, она определяет расширение вашего сжатого файла и делает всю работу за вас:
extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "don't know how to extract '$1'..." ;; esac else echo "'$1' is not a valid file!" fi }
3
Если у вас возникли проблемы с запоминанием параметров tar, попробуйте использовать pipe:
zcat file.tar.gz | tar xvf -
bzcat file.tar.bz2 | tar xvf -
Замените tar xvна, tar tvчтобы просто просмотреть содержимое тарбола.
Лично я использую следующую мнемонику:
t, x или c для «табулирования», «извлечения» или «создания» соответственно.
v для перечисления всех файлов.
z, j или ничего для tar.gz, tar.bz2 или простого .tar соответственно.
f для указания имени файла по сравнению с использованием по умолчанию stdin / stdout или ленточного устройства.
Хотя «j» и «bzip2», похоже, не имеют ничего общего друг с другом, мне легко запомнить это исключение.
Кроме того, мне смешно, что Googling заменил «man tar».
Вы должны иметь привычку всегда предоставлять опцию `f`: только недавно дистрибутивы tar по умолчанию установились на` f -`, историческое значение по умолчанию - `f / dev / rmt0` или подобное. В конце концов, tar - это Tape ARchiver.
ephemient 16 лет назад
0
что такое табулирование?
Claudiu 15 лет назад
1
3
Человек твой друг.
man tar
2
Jauder Ho
Я делаю следующее
Чтобы создать tar:
tar czvf foo.tar.gz <files to be included>
Распаковать:
tar zxvf foo.tar.gz
Это должны быть основные переключатели, о которых вам нужно беспокоиться:
c - create z - compress/uncompress x - extracte v - verbose f - file
Пока вы пытаетесь перемещать файлы по каталогам, вы можете делать некоторые более интересные вещи, такие как tar и untar inline:
tar cf - <files to be copied> | (cd <target directory>; tar xvf - )
2
feeela
Я всегда зачитываю команды в уме, печатая
сжать подробный zip-файл
tar cvzf FILE
извлечь подробный почтовый файл ФАЙЛ
tar xvzf FILE
1
ramayac
90% времени я просто использую
tar -xvf file.*
x: extract v: быть подробным (необязательно) f: входной файл (tar, gz, bzip2 и т. д.)
Полегче, а? :) Используйте Fileroller или Ark, если вы не в консоли.
До сих пор я использовал fileroller, но в настоящее время мне не повезло, потому что у меня есть версия, использующая 1,1 ГБ памяти.
Andrew Grimm 15 лет назад
0