No puede, dado que el usuario que crea el directorio tiene permiso suficiente para escribir en el directorio principal.
En su lugar, puede aprovechar la inotify
familia de llamadas al sistema proporcionadas por el kernel de Linux, para observar la creación (y opcionalmente mv
-ing) del directorio shop
en el directorio dado, si se creó (u opcionalmente mv
-ed), rm
el directorio.
El programa de espacio de usuario que necesita en este caso es inotifywait
(viene con inotify-tools
, instálelo primero si es necesario).
Suponiendo que el directorio shop
residiría en el /foo/bar
directorio, configuremos un monitoreo para la /foo/bar/shop
creación, e rm
instantáneamente si se crea:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar
vigila el /foo/bar
directorio para cualquier archivo / directorio que pueda crearse, es decir, observe cualquier create
evento
Si se crea, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
comprueba si el archivo es un directorio y el nombre es shop
( /,ISDIR shop$/
), de ser así, rm
el directorio ( system("rm -r -- /foo/bar/shop")
)
Debe ejecutar el comando como un usuario que tiene permiso de escritura en el directorio /foo/bar
para eliminarlo del shop
directorio.
Si también desea monitorear las mv
operaciones de llamada, agregue también la observación de moved_to
eventos:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Solo para tener en cuenta, si está buscando un archivo, no un directorio, llamado 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") }'