Список всех файлов старше x дней только в текущем каталоге
Я новичок в unix и не смог получить соответствующий результат в других вопросах.
Я хочу перечислить только файлы в текущем каталоге, которые старше x дней. У меня ниже ограничение
- Список только тех файлов в текущей папке, которые старше 30 лет дни
- Выходные данные не должны включать каталоги и подкаталоги
- Это должно перечислить файлы, подобные команде " ls
- Выходные данные должны выглядеть как
file1 file2 file3 ..
Я использовал find . -mtime +30
. но это дает файлы и файлы в подкаталогах, а также. Я хотел бы ограничить рекурсивный поиск и не искать внутри каталогов.
Заранее большое спасибо !

Ответы - Список всех файлов старше x дней только в текущем каталоге / List all files older than x days only in current directory

01.12.2015 04:40:22
Вы можете использовать find . -maxdepth 1
для исключения подкаталогов.


01.12.2015 04:57:04
Вы можете сделать это:
find ./ -maxdepth 1 -type f -mtime +30 -print
Если возникли проблемы, сделайте:
find ./ -depth 1 -type f -mtime +30 -print

24.12.2019 01:36:34
Чтобы добавить ответ @Richasantos:
Это прекрасно работает
$ find . -maxdepth 1 -type f -mtime +30
Печать:
./file1
./file2
./file3
Теперь вы можете связать это с чем угодно. Допустим, вы хотите удалить все эти старые файлы.:
$ find . -maxdepth 1 -type f -mtime +30 -print | xargs /bin/rm -f
От man find
: `
Если вы передаете вывод find в другую программу и есть малейшая вероятность того, что файлы, которые вы ищете, могут содержать новую строку, то вам следует серьезно рассмотреть возможность использования опции
-print0
вместо
Итак, используя-print0
$ find . -maxdepth 1 -type f -mtime +30 -print0
Печать (с нулевыми символами между ними):
./file1./file2./file3
И используется таким образом, чтобы удалить эти старые файлы:
$ find . -maxdepth 1 -type f -mtime +30 -print0 | xargs -0 /bin/rm -f

04.02.2020 06:41:38
Немного другой спин на этом: find
невероятно универсальна, вы можете указать размер и время следующим образом:
Здесь вы найдете все журналы, которые старше 4 месяцев и больше, чем 1 Мег. Если вы удалите знак+, он найдет файлы примерно такого размера.
find /var/log -type f -mtime +120 -size +1M
/var/log/anaconda/journal.log
/var/log/ambari-agent/ambari-alerts.log.23
/var/log/ambari-agent/ambari-alerts.log.22
/var/log/ambari-agent/ambari-alerts.log.24
/var/log/ambari-agent/ambari-alerts.log.25
/var/log/ambari-agent/ambari-alerts.log.21
/var/log/ambari-agent/ambari-alerts.log.20
/var/log/ambari-agent/ambari-alerts.log.19
Что еще лучше, вы можете скормить это в ls
:
find /var/log -type f -mtime +120 -size +1M -print0 | xargs -0 ls -lh
-rw-r--r--. 1 root root 9.6M Oct 1 13:24 /var/log/ambari-agent/ambari-alerts.log.19
-rw-r--r--. 1 root root 9.6M Sep 27 07:44 /var/log/ambari-agent/ambari-alerts.log.20
-rw-r--r--. 1 root root 9.6M Sep 22 03:32 /var/log/ambari-agent/ambari-alerts.log.21
-rw-r--r--. 1 root root 9.6M Sep 16 23:23 /var/log/ambari-agent/ambari-alerts.log.22
-rw-r--r--. 1 root root 9.6M Sep 11 19:12 /var/log/ambari-agent/ambari-alerts.log.23
-rw-r--r--. 1 root root 9.6M Sep 6 15:02 /var/log/ambari-agent/ambari-alerts.log.24
-rw-r--r--. 1 root root 9.6M Sep 1 10:51 /var/log/ambari-agent/ambari-alerts.log.25
-rw-------. 1 root root 1.8M Mar 11 2019 /var/log/anaconda/journal.log