Я вполне уверен, я не единственный со следующей проблемой: каждый раз я должен распаковать файл в *, отклоняют, я не могу помнить все переключатели и закончить тем, что гуглил его, который является удивительным рассмотрением, как часто я должен сделать это.
У Вас есть хорошая шпаргалка сжатия? Или как насчет мнемосхемы для всех тех противных переключателей в tar?
Я делаю эту статью Wiki так, чтобы мы могли создать хорошую шпаргалку здесь.
О, и о страницах справочника: есть ли существует одна вещь, для которой они не полезны, это для выяснения, как распаковать файл.
Или как насчет того, чтобы использовать оболочку с усовершенствованными возможностями завершения (как zsh или новые версии удара), который завершит опции для Вас со всесторонней справкой?:))
Относительно tar: просто посмотрите на клавиатуру "стандартного расположения букв на клавиатуре". Существуют буквы "zxcvf" друг рядом с другом. Вам нужны или "tar czvf file.tar.gz файлы" или "tar xzvf file.tar.gz".
Путем я помню, то, что это всегда - "tar XXvf", где два Xs
Иногда Вы сталкиваетесь сжатый, но не смолившие файлы, где Вы добавляете ООН к тому, что компрессионный тип. например, gunzip или bunzip2.
В любом случае я забываю 2 и иногда ввожу "bzip".
Я использовал названный сценарий Perl aunpack
, часть atool проекта, много лет теперь. Таким образом, Вы просто работаете: aunpack foo.{zip/tar.gz/tar.bz2}
и это делает корректную вещь на основе расширения файла.
Другое преимущество aunpack
это, это не загрязнит текущий каталог большим количеством файлов. Скажите, что существует 20 файлов в foo.zip
это не находится в подкаталоге. Вместо того, чтобы извергнуть эти файлы в текущем каталоге, aunpack
создаст a foo
подкаталог и помещенный все файлы там.
Я думаю, что легко думать о том, что Вы хотите и не только некоторые буквы.
Для иллюстрирования я буду использовать пример того, как извлечь file.tar.gz:
Так как это - файл tar, необходимо использовать программу tar. Затем это - опции:
Это продемонстрировано в примере ниже:
tar xzf file.tar.gz
Я делаю следующее
Создать tar:
tar czvf foo.tar.gz <files to be included>
К untar:
tar zxvf foo.tar.gz
Они должны быть основными переключателями, о которых необходимо волноваться:
c - create
z - compress/uncompress
x - extracte
v - verbose
f - file
Можно сделать некоторый более необычный материал как tar и untar, встроенный, в то время как Вы пытаетесь переместить файлы через каталоги как так:
tar cf - <files to be copied> | (cd <target directory>; tar xvf - )
Три наиболее часто используемых операции:
--create
-c
Создайте новый архив tar.
--list
-t
Перечислите содержание архива.
--extract
-x
Извлеките одного или несколько участников из архива.
Пять Усовершенствованных Операций tar:
--append
-r
Добавьте новые записи в архив, который уже существует.
--update
-u
Добавьте более свежие копии членов архива в конец архива, если они существуют.
--concatenate
--catenate
-A
Добавьте один или несколько существующих ранее архивов в конец другого архива.
--delete
Удалите объекты из архива (не работает над лентами).
--compare
--diff
-d
Сравните членов архива с их дубликатами в файловой системе.
При наличии затруднений при запоминании опций tar попытайтесь использовать каналы:
zcat file.tar.gz | tar xvf -
bzcat file.tar.bz2 | tar xvf -
Замена tar xv
с tar tv
просто просмотреть содержание tarball.
Лично, я использую следующую мнемонику:
Хотя "j" и "bzip2", кажется, не имеют никакого отношения друг к другу, мне легко помнить это исключение.
Кроме того, я нахожу это забавным, что поиск с помощью Google заменил "tar человека".
Просто введите tar --help
и существует Ваш cheatsheet.
Действительно с частым использованием я имею значение между извлечением (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
}
Существует маленький сценарий Perl, названный "unp".
unp filename.tar.gz
... и это извлекает все. Работы с любым сжатым файлом, пока у Вас есть правильные двоичные файлы. И Вы просто забываете о синтаксисе или любом том дерьме. Проверьте репозитории своего дистрибутива Linux. Это должно быть там (по крайней мере, на Дуге, Debian и Ubuntu).
Сводка опции 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 /*