Невозможно удалить файлы с помощью сценария

После долгого поиска, метода проб и ошибок, я создал сценарий

#!/bin/bash

find /home/SHARE/temp/* -mtime +10 -exec rm {} \;

При создании это выполнялось и удалило все файлы, более старые, чем 10 дней, но оставило папки, в которых лежали эти файлы.

Я записал его в кроне, и теперь я вижу, что это ничего не делает.

Возможно, я записал это неправильно в кроне, но когда я пытаюсь выполнить его вручную, я добираюсь:

rm query: remove write-protected regular file

и просит подтверждать удаление и после этого говорит

Permission denied

Как сделать это не, только файлы, но также и папки удалены?

Как автоматически запустить скрипт с правами sudo?

Спасибо за помощь

2
задан 26 May 2017 в 12:20

2 ответа

Для удаления пустых каталогов ниже, но не включая использование/home/SHARE/temp

find /home/SHARE/temp -depth -mindepth 1 -type d -empty -exec rmdir {} \;

Для удаления только файлов в исходной команде включают -type f таким образом

find /home/SHARE/temp -type f -mtime +10 -exec rm {} \;

При использовании этих команд от замены крона \; с \\;

2
ответ дан 2 December 2019 в 02:46

я полагаю, что необходимо вызвать, удаляют файл, поскольку файл только для чтения modifiying строка:

find /home/SHARE/temp/* -mtime +10 -exec rm {} \;

к

find /home/SHARE/temp/* -mtime +10 -exec "rm -f" {} \;

В дополнение к этому Вы любили бы выполнять сценарий с помощью пользователя root.

1
ответ дан 2 December 2019 в 02:46

Другие вопросы по тегам:

Похожие вопросы: