Ошибка в удалении файлов или каталогов старше 1 дня

Вы можете попробовать проверить конкатенацию / etc / sudoers и предлагаемого нового файла:

sudo bash -c 'visudo -cf <(cat /etc/sudoers /path/to/to-be-added-file)'

Так как visudo проанализирует #includedir в / etc / sudoers , все соответствующие файлы в sudoers.d также будут проверены.

$ sudo cat /etc/sudoers.d/foo
Cmnd_Alias FOO = /bin/bar
$ sudo cat /tmp/bar
Cmnd_Alias FOO = /bin/foo
$ sudo bash -c 'visudo -cf <(cat /etc/sudoers /tmp/bar)'
>>> /dev/fd/63: Alias `FOO' already defined near line 31 <<<
parse error in /dev/fd/63 near line 31
2
04.10.2018, 15:03
2 ответа

Это хорошо известная проблема. Проблема в том, что findсначала удаляет каталог, а затем пытается обработать файлы внутри него. Решение состоит в том, чтобы сначала разобраться с вещами внутри каталога и только потом удалить каталог. Вот для чего нужна опция -depth, поэтому:

find /u01/Release/* -depth -mtime +1 -exec rm -r {} \;

должно помочь. Вас также может заинтересовать более короткая форма, использующая -deleteдействие (, что подразумевает-depth):

find /u01/Release/* -mtime +1 -delete

Как всегда man findтвой друг.

2
27.01.2020, 22:08

Попробуйте следующее. Лучше использовать --force, который удалит файлы и каталоги.

find /u01/Release/* -mtime +1 -exec rm -rf {} \;


-r, -R, --recursive
              remove directories and their contents recursively
-f, --force
                  ignore nonexistent files, never prompt
0
27.01.2020, 22:08

Теги

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