Назад | Перейти на главную страницу

Tar-файлы старше x дней

У меня есть каталог, который я хотел бы просмотреть и добавить каждый файл старше 50 дней в новый архив с именем archive.tar

Все файлы старше 50 дней должны быть в одном большом tar, а не в tar для каждого файла.

Как я могу это сделать?

Это поможет:

# find /path/to/files -type f -mtime +50 | xargs tar cvf archive.tar

Вы можете вставить его в crontab и запускать ежедневно.

Редактировать: Помните, что это не удалит файлы из системы, а только добавит их в архив.

Чтобы добавить в архив, используйте r вариант, а не c:

find dirname -type f -mtime +50 | xargs tar rvf archive.tar

Чтобы добавлять файлы только в том случае, если они новее, чем копия, уже находящаяся в архиве:

find dirname -type f -mtime +50 | xargs tar uvf archive.tar

Используйте команду find, чтобы найти файлы старше 50 дней, и дайте команду find запустить tar, чтобы добавить найденный файл (ы) в tar. Для повышения производительности обычно вывод команды find передается программе xargs.

Я выполнил поиск в Google по запросу «найти tar xargs» и вот две хорошие ссылки:

http://content.hccfl.edu/pollock/Unix/FindCmd.htm

http://www.devdaily.com/blog/post/linux-unix/using-find-xargs-tar-create-huge-archive-cygwin-linux-unix