У меня есть каталог, который я хотел бы просмотреть и добавить каждый файл старше 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