Командное ядро ​​`find` сбрасывает в каталог слишком много файлов - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть папка, в которой содержится так много файлов / папок, что даже такие базовые c команды, как du и find, дают сбой. Я хотел бы очистить некоторые старые файлы от него ... но, очевидно, я не могу сделать это с помощью команды find ...


# find /opt/graphite/storage/whisper -mtime +30 -type f -delete
Aborted (core dumped)

Какую команду или прием можно использовать для удаления файлы из этой папки, поскольку find не работает?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Для команды find с использованием опции -exec мне удалось удалить файлы.

# find /opt/graphite/storage/whisper -mtime +30 -type f -exec rm -f {} \;
0 голосов
/ 27 апреля 2020

Я считаю, что лучший способ go - использовать простой for-l oop: проблема в том, что find загружает всю найденную информацию в память и только после этого начинает удаление.
Однако, oop может решить эту проблему:

for f in $(ls -a)
do 
  if <check_last_modification_date>($f)
  then rm -r $f
  fi
done

Что касается проверки даты последнего изменения, существует множество способов сделать это, как объяснено здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...