Vous ne pouvez pas, étant donné que l'utilisateur qui crée le répertoire dispose des autorisations suffisantes pour écrire sur le répertoire parent.
Vous pouvez à la place tirer parti de la inotify
famille d'appels système fournis par le noyau Linux, pour surveiller la création (et éventuellement le mv
-ing) du répertoire shop
dans le répertoire donné, s'il est créé (ou éventuellement mv
-ed), rm
le répertoire.
Le programme d'espace utilisateur dont vous avez besoin dans ce cas est inotifywait
(livré avec inotify-tools
, installez-le d'abord si nécessaire).
En supposant que le répertoire shop
résiderait dans le /foo/bar
répertoire, définissons une surveillance pour la /foo/bar/shop
création et rm
instantanément s'il est créé:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar
surveille le /foo/bar
répertoire pour tout fichier / répertoire qui pourrait être créé, c'est-à-dire surveillez tout create
événement
S'il est créé, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
vérifie si le fichier se trouve être un répertoire et que le nom est shop
( /,ISDIR shop$/
), si c'est rm
le répertoire ( system("rm -r -- /foo/bar/shop")
)
Vous devez exécuter la commande en tant qu'utilisateur disposant d'une autorisation d'écriture sur le répertoire /foo/bar
pour la suppression du shop
répertoire.
Si vous souhaitez également surveiller les mv
opérations de contrôle , ajoutez également la fonction de surveillance des moved_to
événements:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Juste pour noter, si vous cherchez un fichier, pas un répertoire, nommé 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") }'