Я пытаюсь разработать команду, которая найдет файлы, которые не были изменены более чем за 6 месяцев, и застегните их одной командой. Впоследствии я хочу удалить все эти файлы и просто архивировать.Zipping и удаление файлов с определенным возрастом
Моя текущая команда, чтобы найти каталоги с файлами является
find /var/www -type d -mtime -400 ! -mtime -180 | xargs ls -l > testd.txt
Это дало мне все каталоги, включая файлы, которые старше 6 месяцев Теперь я задавался вопросом, есть ли способ сжать все результаты и их удаление впоследствии. Что-то среди линии
find /var/www -type f -mtime -400 ! -mtime -180 | gzip -c archive.gz
Если кто-то знает правильный синтаксис для достижения этого, я бы хотел узнать. Thakns!
Edit, после нескольких тестов эта команда приведет к повреждению файла
find /var/www -mtime -900 ! -mtime -180 | xargs tar -cf test4.tar
Любые идеи?
gzip только сжимает отдельные файлы. это НЕ похоже на pkzip, который может объединить несколько файлов в один ZIP-архив. Вам нужно tar и gzip, если вы хотите создать один файл сжатого архива. gzip также удалит исходный несжатый файл, поэтому 'gzip foo.txt' приведет к тому, что на диске будет' foo.txt.gz', а 'foo.txt' больше не будет существовать. –
Не знаете ли вы, какой синтаксис подразумевается в этом текущем сценарии? – Dexirian
'find ... | xargs gzip' или 'find ... -exec gzip {}' –