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

268

Я пытаюсь сжать папку ( /var/www/), ~/www_backups/$time.tarгде $timeтекущая дата.

Вот что у меня есть:

cd /var/www && sudo tar -czf ~/www_backups $time"

Я полностью потерян, и я был в этом часами. Не уверен, если -czfэто правильно. Я просто хочу , чтобы скопировать все содержимое в /var/wwwв $time.tarфайл, и я хочу , чтобы сохранить права доступа к файлам для всех файлов. Может кто-нибудь мне помочь?

БУКВ
источник
вам нужно "на другой стороне, $timeа.
Гаут

Ответы:

373

Кому 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опцией. И, возможно, другие. Проверьте страницу руководства в вашей локальной системе.

Мат
источник
1
Это прекрасно, спасибо. У меня есть одна маленькая проблема, хотя. После создания файла tar из / var / www он помещается в каталоги / var / www в файле tar. Вот код, который я сейчас использую. sudo tar -czf ~/www_backups/$time.tar /var/www/"Представьте, что у меня есть файл с именем test.txt внутри / var / www. После создания tar-копии файла, когда я распаковываю его, он будет помещен в каталоги / var / www. Имеет ли это смысл? Я надеюсь, что это так, трудно объяснить. Я проверю поддержку BZip2, спасибо за предложение!
БУКВЫ
1
Вот почему вы сначала cdобращаетесь к каталогу, который хотите упаковать, а затем tar cf file.tar .- этот последний, .вместо указания полного пути, создаст пути внутри архива относительно текущего каталога. Вы также можете использовать -Cопцию tar (см. Справочную страницу).
Мат
1
Да, это работало намного лучше. Большое спасибо, ценю это!
БУКВЫ
3
@Qwertylicious -f(со страницы человека)Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
Каньон Колоб
1
sudoбыл в вопросе, не изменилось или подвергнуть сомнению это. Однако иметь ограниченную корневую директорию резервного копирования - неплохая идея.
Мат