Untar, ungz, gz, tar - как Вы помните все полезные опции?

Я вполне уверен, я не единственный со следующей проблемой: каждый раз я должен распаковать файл в *, отклоняют, я не могу помнить все переключатели и закончить тем, что гуглил его, который является удивительным рассмотрением, как часто я должен сделать это.

У Вас есть хорошая шпаргалка сжатия? Или как насчет мнемосхемы для всех тех противных переключателей в tar?

Я делаю эту статью Wiki так, чтобы мы могли создать хорошую шпаргалку здесь.

О, и о страницах справочника: есть ли существует одна вещь, для которой они не полезны, это для выяснения, как распаковать файл.

76
задан 22.10.2008, 00:56

13 ответов

Или как насчет того, чтобы использовать оболочку с усовершенствованными возможностями завершения (как zsh или новые версии удара), который завершит опции для Вас со всесторонней справкой?:))

Относительно tar: просто посмотрите на клавиатуру "стандартного расположения букв на клавиатуре". Существуют буквы "zxcvf" друг рядом с другом. Вам нужны или "tar czvf file.tar.gz файлы" или "tar xzvf file.tar.gz".

65
ответ дан 07.12.2019, 08:07

Путем я помню, то, что это всегда - "tar XXvf", где два Xs

  • x для извлечения или c для Создают и,
  • любой z = gzip, j = bzip2 (gzip более распространено, таким образом, это обычно z по любой причине j = bzip2, просто застревает в моей голове).

Иногда Вы сталкиваетесь сжатый, но не смолившие файлы, где Вы добавляете ООН к тому, что компрессионный тип. например, gunzip или bunzip2.

В любом случае я забываю 2 и иногда ввожу "bzip".

0
ответ дан 07.12.2019, 08:07

Я использовал названный сценарий Perl aunpack, часть atool проекта, много лет теперь. Таким образом, Вы просто работаете: aunpack foo.{zip/tar.gz/tar.bz2} и это делает корректную вещь на основе расширения файла.

Другое преимущество aunpack это, это не загрязнит текущий каталог большим количеством файлов. Скажите, что существует 20 файлов в foo.zip это не находится в подкаталоге. Вместо того, чтобы извергнуть эти файлы в текущем каталоге, aunpack создаст a foo подкаталог и помещенный все файлы там.

1
ответ дан 07.12.2019, 08:07

Я думаю, что легко думать о том, что Вы хотите и не только некоторые буквы.

Для иллюстрирования я буду использовать пример того, как извлечь file.tar.gz:

Так как это - файл tar, необходимо использовать программу tar. Затем это - опции:

  1. x, так как Вы хотите извлечь.
  2. z, если файл заканчивается .gz. (gz после tar в имени файла), Эта опция gunzip архив.
  3. f для файла, сопровождаемого названием архива.

Это продемонстрировано в примере ниже:

tar xzf file.tar.gz
0
ответ дан 07.12.2019, 08:07

Я делаю следующее

Создать 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 - )
2
ответ дан 07.12.2019, 08:07

90% времени я просто использую

tar -xvf file.*  

x: извлечение
v: будьте подробными (дополнительно)
f: входной файл (tar, gz, bzip2, и т.д....)

Легкий, ха?:)
Используйте Fileroller или Ковчег если Ваш не в консоли.

1
ответ дан 07.12.2019, 08:07

Три наиболее часто используемых операции:

--create -c

Создайте новый архив tar.

--list -t

Перечислите содержание архива.

--extract -x

Извлеките одного или несколько участников из архива.


Пять Усовершенствованных Операций tar:

--append -r

Добавьте новые записи в архив, который уже существует.

--update -u

Добавьте более свежие копии членов архива в конец архива, если они существуют.

--concatenate --catenate -A

Добавьте один или несколько существующих ранее архивов в конец другого архива.

--delete

Удалите объекты из архива (не работает над лентами).

--compare --diff -d

Сравните членов архива с их дубликатами в файловой системе.


2
ответ дан 07.12.2019, 08:07

Человек является Вашим другом.

man tar

3
ответ дан 07.12.2019, 08:07

При наличии затруднений при запоминании опций tar попытайтесь использовать каналы:

  • zcat file.tar.gz | tar xvf -
  • bzcat file.tar.bz2 | tar xvf -

Замена tar xv с tar tv просто просмотреть содержание tarball.

Лично, я использую следующую мнемонику:

  • t, x, или c для "сведения в таблицу", "xtracting", или "создания", соответственно.
  • v для списка всех файлов.
  • z, j, или ничто для tar.gz, tar bz2 или плоскости .tar, соответственно.
  • f для предоставления имени файла, по сравнению со значением по умолчанию использования stdin/stdout или накопителя на магнитной ленте.

Хотя "j" и "bzip2", кажется, не имеют никакого отношения друг к другу, мне легко помнить это исключение.

Кроме того, я нахожу это забавным, что поиск с помощью Google заменил "tar человека".

3
ответ дан 07.12.2019, 08:07

Просто введите tar --help и существует Ваш cheatsheet.

5
ответ дан 07.12.2019, 08:07

Действительно с частым использованием я имею значение между извлечением (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
 }
8
ответ дан 07.12.2019, 08:07

Существует маленький сценарий Perl, названный "unp".

unp filename.tar.gz

... и это извлекает все. Работы с любым сжатым файлом, пока у Вас есть правильные двоичные файлы. И Вы просто забываете о синтаксисе или любом том дерьме. Проверьте репозитории своего дистрибутива Linux. Это должно быть там (по крайней мере, на Дуге, Debian и Ubuntu).

23
ответ дан 07.12.2019, 08:07

Сводка опции 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 /*

41
ответ дан 07.12.2019, 08:07

Теги

Похожие вопросы