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 inotify
oluş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 .shop
mv
rm
Bu durumda ihtiyacınız olan kullanıcı alanı programı inotifywait
(ile birlikte gelir inotify-tools
, gerekirse önce kurun).
Dizin varsayarsak shop
ikamet olacağını /foo/bar
dizine, en bir izleme ayarlayalım /foo/bar/shop
oluşturulması ve rm
oluşturulan eğer anında:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar
saatler /foo/bar
herhangi yani izlemek yaratılabilecek her dosya / dizin için dizin create
olay
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 rm
dizin ( system("rm -r -- /foo/bar/shop")
)
Komutu /foo/bar
dizinden 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_to
etkinlik 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") }'