Возможность (я думаю, должны быть лучшие):
echo `echo "Hello world" | wc -c` ",Hello world" | sed 's/ ,/,/g'
С инструментами GNU:
find. -type f -printf '%T@:%p\0' |
sort -rzn |
awk -v RS='\0' -v ORS='\0' -F: -v d=10 '
NR == 1 {t = $1 - 86400 * d}
$1 < t, 0 {sub(/[^:]*:/, ""); print}' |
xargs -r0 echo rm
(удалите echo
когда счастливы ).
Мы получаем find
для печати 123456.123:./path/to/file<NUL>
для каждого файла (, где 123456.123
— время последней модификации файлов ).
Мы сортируем это численно (, поэтому самый новый файл идет первым ), а затем с помощью awk
находим файлы, которые более чем на 10 дней старше самого нового файла (, найденного в первой записи. в этом отсортированном списке ).
Я думаю, что приведенная ниже команда поможет, если вы работаете с операционной системой на базе Linux.
find /path/to/directory/ -mindepth 1 -mtime +7 -delete
+7 = переменная, которая означает, что файлы старше 7 дней будут удалены
Будьте осторожны с пробелами, кавычками в rm.