Non è possibile, dato che l'utente che crea la directory dispone dell'autorizzazione sufficiente per scrivere nella directory principale.
Puoi invece sfruttare la inotifyfamiglia di chiamate di sistema fornite dal kernel Linux, per cercare la creazione (e facoltativamente mv-ing) della directory shopnella directory data, se creata (o facoltativamente mv-ed), rmla directory.
Il programma userspace di cui hai bisogno in questo caso è inotifywait(viene fornito inotify-tools, installalo prima se necessario).
Supponendo che la directory shoprisieda nella /foo/bardirectory, impostiamo un monitoraggio per la /foo/bar/shopcreazione e rmistantaneamente se creato:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/barcontrolla la /foo/bardirectory per qualsiasi file / directory che potrebbe essere creata, ad esempio guarda per qualsiasi createevento
Se creato, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'controlla se il file è una directory e il nome è shop( /,ISDIR shop$/), in tal caso rmla directory ( system("rm -r -- /foo/bar/shop"))
È necessario eseguire il comando come utente con autorizzazione di scrittura sulla directory /foo/barper la rimozione shopdalla directory.
Se vuoi monitorare mvanche le operazioni -ing, aggiungi anche watch for moved_toevent:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Solo per notare, se stai cercando un file, non una directory, chiamato 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") }'