Anda tidak bisa, mengingat pengguna yang membuat direktori memiliki izin yang cukup untuk menulis di direktori induk.
Sebagai gantinya, Anda dapat memanfaatkan kumpulan inotify
panggilan sistem yang disediakan oleh kernel Linux, untuk mengawasi pembuatan (dan opsional mv
-ing) direktori shop
dalam direktori yang diberikan, jika dibuat (atau secara opsional mv
-ed), rm
direktori.
Program userspace yang Anda butuhkan dalam hal ini adalah inotifywait
(datang dengan inotify-tools
, instal dulu jika diperlukan).
Dengan asumsi direktori shop
akan berada di /foo/bar
direktori, mari kita atur pemantauan untuk /foo/bar/shop
pembuatan, dan rm
langsung jika dibuat:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar
/foo/bar
direktori jam tangan untuk file / direktori apa pun yang mungkin dibuat, misalnya pantau create
acara apa pun
Jika dibuat, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
periksa apakah file tersebut merupakan direktori dan namanya adalah shop
( /,ISDIR shop$/
), jika demikian rm
direktori ( system("rm -r -- /foo/bar/shop")
)
Anda perlu menjalankan perintah sebagai pengguna yang memiliki izin menulis pada direktori /foo/bar
untuk dihapus dari shop
direktori.
Jika Anda ingin memantau mv
operasi juga, tambahkan tontonan untuk moved_to
acara juga:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Sekadar diketahui, jika Anda mencari file, bukan direktori, bernama 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") }'