Você não pode, dado que o usuário que criou o diretório tem permissão suficiente para escrever no diretório pai.
Em vez disso, você pode aproveitar a família inotify
de chamadas de sistema fornecidas pelo kernel do Linux, para observar a criação (e opcionalmente mv
-ing) do diretório shop
no diretório fornecido, se criada (ou opcionalmente mv
-ed), rm
do diretório.
O programa userspace que você precisa neste caso é inotifywait
(vem com inotify-tools
, instale primeiro se necessário).
Assumindo que o diretório shop
estaria residindo no diretório /foo/bar
, vamos definir um monitoramento para /foo/bar/shop
creation e rm
instantaneamente se criado:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
-
inotifywait -qme create /foo/bar
watches/foo/bar
diretório para qualquer arquivo / diretório que possa ser criado, por exemplo, observe qualquer eventocreate
-
Se criado,
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
verificará se o arquivo é um diretório e o nome éshop
(/,ISDIR shop$/
), se for o casorm
do diretório (system("rm -r -- /foo/bar/shop")
)
Você precisa executar o comando como um usuário que possui permissão de gravação no diretório /foo/bar
para remoção de shop
do diretório.
Se você quiser monitorar também as operações mv
-ing, adicione watch também ao evento moved_to
:
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
Apenas para observar, se você estiver procurando por um arquivo, não um diretório, chamado 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") }'