Nie możesz, ponieważ użytkownik tworzący katalog ma wystarczające uprawnienia do zapisu w katalogu nadrzędnym.
Zamiast tego możesz wykorzystać inotifyrodzinę wywołań systemowych dostarczanych przez jądro Linuksa, aby obserwować tworzenie (i opcjonalnie mv-ing) katalogu shopw danym katalogu, jeśli został utworzony (lub opcjonalnie mv-ed), rmkatalog.
Program przestrzeni użytkownika, którego potrzebujesz w tym przypadku to inotifywait(pochodzi z inotify-tools, zainstaluj go najpierw, jeśli to konieczne).
Zakładając, że katalog shopbędzie znajdować się w /foo/barkatalogu, ustawmy monitorowanie /foo/bar/shoptworzenia i rmnatychmiast, jeśli zostanie utworzone:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar/foo/barkatalog zegarki dla każdego pliku / katalogu, który może zostać utworzony, tj. obserwuj każde createzdarzenie
Jeśli utworzony, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'sprawdza, czy plik jest katalogiem, a nazwa to shop( /,ISDIR shop$/), jeśli tak, rmto katalog ( system("rm -r -- /foo/bar/shop"))
Musisz uruchomić polecenie jako użytkownik, który ma uprawnienia do zapisu w katalogu w /foo/barcelu usunięcia go shopz katalogu.
Jeśli chcesz też monitorować mvoperacje-dodawania, dodaj też obserwację moved_tozdarzenia:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Uwaga: jeśli szukasz pliku, a nie katalogu o nazwie 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") }'