Вы не можете, учитывая, что пользователь, создающий каталог, имеет достаточные права для записи в родительский каталог.
Вместо этого вы можете использовать inotifyсемейство системных вызовов, предоставляемых ядром Linux, для наблюдения за созданием (и необязательно mv-ing) каталога shopв данном каталоге, если он создан (или необязательно mv-ed), rmкаталогом.
Программа пользовательского пространства, которая вам нужна в этом случае inotifywait(поставляется вместе inotify-tools, сначала установите ее, если необходимо).
Предполагая, что каталог shopбудет находиться в /foo/barкаталоге, давайте установим мониторинг для /foo/bar/shopсоздания, и rmсразу же, если он будет создан:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/barотслеживает /foo/barкаталог для любого файла / каталога, который может быть создан, т.е. отслеживает любое createсобытие
Если создан, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'проверяет, является ли файл каталогом, а имя - shop( /,ISDIR shop$/), если да, rmто каталог ( system("rm -r -- /foo/bar/shop"))
Вам нужно выполнить команду как пользователь, у которого есть разрешение на запись в каталог /foo/barдля удаления shopиз каталога.
Если вы mvтоже хотите отслеживать операции -ing, добавьте watch for moved_toevent:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Просто обратите внимание, что если вы ищете файл, а не каталог с именем shop:
inotifywait -qme create /foo/bar | \
awk '$NF == "shop" { system("rm -- /foo/bar/shop") }'
inotifywait -qme create,moved_to /foo/bar | \
awk '$NF == "shop" { system("rm -- /foo/bar/shop") }'