Сжать папку с tar?

Можно просто сделать что-то вроде этого:

$ TZ=Europe/Moscow date
Thu Jun  9 08:34:46 MSD 2011
$ TZ=America/NewYork date
Thu Jun  9 04:34:48 America 2011

Можно найти имена зон в /usr/share/zoneinfo. Конечно, это требует, чтобы машине, Вы работаете на этом, установили корректное время.

(Вы не можете действительно получить время страной, потому что много стран имеет больше чем один часовой пояс.)

279
02.09.2012, 20:00
2 ответа

Кому: tar и gzip папка, синтаксис:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

- является дополнительным. Если Вы хотите tar текущий каталог, использовать . определять это.

Для построения имени файла используйте date утилита (смотрят на ее страницу справочника для опций доступного формата). Например:

cd /var/www && sudo tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .

Это создало бы файл, названный чем-то как 20120902-185558.tar.gz.

На Linux возможности - Ваш tar также поддержки сжатие BZip2 с j вместо z опция. И возможно другие. Проверьте страницу справочника в своей локальной системе.

390
27.01.2020, 19:26
  • 1
    Это прекрасно, спасибо. У меня есть одна крошечная проблема все же. После создания файла tar/var/www это помещается в рамках/var/www каталогов в файле tar. Вот код, который я использую теперь sudo tar -czf ~/www_backups/$time.tar /var/www/" Предположите, что у меня есть файл под названием test.txt внутри/var/www. После создания копии tar файла, когда я извлеку его, это будет помещено внутри/var/www каталоги. Это имеет смысл? Я надеюсь, что это делает, довольно трудно для объяснения. Я проверю на поддержку BZip2, спасибо за предложение! –  qwerty 02.09.2012, 20:27
  • 2
    Вот почему Вы сначала cd к каталогу Вы хотите упаковать, затем tar cf file.tar . - это длится . вместо того, чтобы указать полный путь сделает пути в архиве относительно текущего каталога. Вы могли также использовать -C опция для tar (смотрят на страницу справочника). –  Mat 02.09.2012, 20:29
  • 3
    Да, это работало намного лучше. Огромное спасибо цените его! –  qwerty 02.09.2012, 20:33
  • 4
    @Qwertylicious -f (из страницы справочника) Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output. –  Kolob Canyon 27.12.2016, 22:02
  • 5
    sudo был в вопросе, не изменился или вопрос это. Наличие резервного целевого каталога, ограниченного корнем, не является плохой идеей все же. –  Mat 26.02.2018, 20:34

Примеры наиболее распространенных алгоритмов сжатия

Заголовок вопроса для этого просто «Сжать папку с помощью tar?» Поскольку этот заголовок очень общий, но вопрос и ответ гораздо более конкретны, и из-за очень большого количества просмотров, которые привлек этот вопрос, я подумал, что было бы полезно добавить список дат с -по -. примеров как архивирования/сжатия, так и извлечения/распаковки с различными широко используемыми алгоритмами сжатия.

Они были протестированы с Ubuntu 18.04.4. Они очень просты для общего использования, но их можно легко интегрировать в более конкретное содержание вопросов ОП, используя методы, описанные в принятом ответе, и полезные комментарии выше.

Одна вещь, которую следует отметить для более широкой аудитории, заключается в том, что tarне будут добавлять необходимые расширения, (такие как.tar.gz)автоматически -пользователь должен добавить их явно,как показано в командах ниже:

# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball
tar cvf filename.tar *

# 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory
tar xvf filename.tar

# 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip
tar cvzf filename.tar.gz *

# 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory
tar xvf filename.tar.gz # Note: same options as 2 above

# 5: tar (create bzip2'ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2
tar cvjf filename.tar.bz2 * # Note: little 'j' in options

# 6: Untar (extract bzip2'ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory
tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above

# 7: tar (create xz'ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz
tar cvJf filename.tar.xz * # Note: capital 'J' in options

# 8: Untar (extract xz'ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory
tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above

Для получения дополнительной информации см. справочную страницу tar (, которую лучше всего использовать man tarна конкретной машине ). Ниже я резюмирую параметры, использованные выше, прямо из справочной страницы :

.

-c, --create
      create a new archive

-x, --extract, --get
      extract files from an archive

-v, --verbose
      verbosely list files processed

-z, --gzip
      filter the archive through gzip

-j, --bzip2
      filter the archive through bzip2

-J, --xz
      filter the archive through xz

-f, --file=ARCHIVE
      use archive file or device ARCHIVE

Нет необходимости добавлять -перед комбинированными параметрами или знак =между параметром fи именем файла.

Все это я почерпнул из своей недавней статьи , которая будет расширена до гораздо более полной статьи, поскольку у меня будет время поработать над ней.

22
08.02.2020, 05:01

Теги

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