Dizini oluşturan kullanıcının üst dizine yazmak için yeterli izni varsa, yapamazsınız.
Bunun yerine , dizinin oluşturulduğu (veya isteğe bağlı olarak -edildiği) dizinde dizinin inotifyoluşturulmasını (ve isteğe bağlı olarak mv-ing) izlemek için Linux çekirdeği tarafından sağlanan sistem çağrıları ailesinden yararlanabilirsiniz .shopmvrm
Bu durumda ihtiyacınız olan kullanıcı alanı programı inotifywait(ile birlikte gelir inotify-tools, gerekirse önce kurun).
Dizin varsayarsak shopikamet olacağını /foo/bardizine, en bir izleme ayarlayalım /foo/bar/shopoluşturulması ve rmoluşturulan eğer anında:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/barsaatler /foo/barherhangi yani izlemek yaratılabilecek her dosya / dizin için dizin createolay
Oluşturulmuşsa, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'dosyanın bir dizin olup olmadığını ve adının shop( /,ISDIR shop$/) olduğunu kontrol eder, öyleyse rmdizin ( system("rm -r -- /foo/bar/shop"))
Komutu /foo/bardizinden kaldırmak için dizinde yazma iznine sahip bir kullanıcı olarak çalıştırmanız gerekir shop.
mv-İng işlemlerini de izlemek istiyorsanız , moved_toetkinlik için de saat ekleyin :
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Sadece şunu belirtmek gerekir shop: Dizin değil, bir dosya arıyorsanız :
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") }'