Найти по имени и -mtime, ничего не возвращает - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь использовать команду find, чтобы удалить какой-то старый файл из папки резервной копии, но команда find ничего не возвращает, и поэтому ничего не удаляется! это код (найти часть), моя система Ubuntu 18.04 LTS

find  -name "*.sql" -type f -mtime +30 

результат команды поиска

и вывод команды ls -l : результат команды ls -l

Я гуглил и искал в Интернете, но ничего не нашел для решения проблемы. любая помощь приветствуется.

1 Ответ

0 голосов
/ 08 марта 2020

Вам не хватает начальной точки для вашей команды find, в данном случае ., потому что вы уже выполняете команду в целевом каталоге:

find . -name "*.sql" -type f -mtime +30 

, остальные могут остаться прежними. Сначала убедитесь, что он дает правильный результат, а затем вы можете нажать -exec для выполнения команды для каждой строки результата.

find . -name "*.sql" -type f -mtime +30 -exec rm '{}' ';'

Обычно такие ответы можно найти на UNIX stackexchange: Как выполнить ln для результатов поиска

Пожалуйста, см. комментарий от David , в данном конкретном случае это может быть неправильное понимание параметра mtime.

Я проверил именно те команды, которые были перечислены здесь, ниже вы видите мою подготовку и некоторые варианты многократного использования, вы можете увидеть, как файлы отображаются должным образом, каждый раз, когда mtime значение уменьшается:
VIRTUAL BOX UBUNTU LTS 18.04

, что неудивительно, учитывая страницу man команды find:
FIND MAN PAGE / - mtime PARAMETER

пожалуйста, проверьте на наличие опечаток ... это должно работать.

...