Вы можете попробовать проверить конкатенацию / 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
Это хорошо известная проблема. Проблема в том, что find
сначала удаляет каталог, а затем пытается обработать файлы внутри него. Решение состоит в том, чтобы сначала разобраться с вещами внутри каталога и только потом удалить каталог. Вот для чего нужна опция -depth
, поэтому:
find /u01/Release/* -depth -mtime +1 -exec rm -r {} \;
должно помочь. Вас также может заинтересовать более короткая форма, использующая -delete
действие (, что подразумевает-depth
):
find /u01/Release/* -mtime +1 -delete
Как всегда man find
твой друг.
Попробуйте следующее. Лучше использовать --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