Мне нужно удалить из папки все файлы старше определенного файла.
Запуск bash на CentOS 7.
У меня есть решение для этого, но я думаю, что должен быть более элегантный способ сделать это:
reference_file=/my/reference/file
get_modify_time()
{
stat $1 | grep -Po "Modify: \K[0-9- :]*"
}
pit=$(get_modify_time $reference_file)
for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done
bash
shell-script
centos
CSNY
источник
источник
-maxdepth 1
чтобы поиск не был рекурсивным! -newer
означает «не новее», значит «старше или ровесницы »; сам файл будет сопоставлен, если он находится в путиfind
, о котором нужно помнить.! -name reference
(см. третий пункт).сравните время модификации файла с
test
помощью операторов-nt
(новее чем) и-ot
(старше чем):источник