Você não pode, dado que o usuário que cria o diretório tem permissão suficiente para gravar no diretório pai.
Em vez disso, você pode alavancar a inotify
família de chamadas do sistema fornecidas pelo kernel Linux, para observar a criação (e opcionalmente mv
-ing) do diretório shop
no diretório especificado, se criado (ou opcionalmente mv
) rm
o diretório.
O programa userspace necessário neste caso é inotifywait
(vem com inotify-tools
, instale-o primeiro, se necessário).
Supondo que o diretório shop
residisse no /foo/bar
diretório, vamos definir um monitoramento para a /foo/bar/shop
criação e, rm
instantaneamente, se criado:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar
observa o /foo/bar
diretório de qualquer arquivo / diretório que possa ser criado, ou seja, observe qualquer create
evento
Se criado, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
verifica se o arquivo é um diretório e se o nome é shop
( /,ISDIR shop$/
); se for, rm
o diretório ( system("rm -r -- /foo/bar/shop")
)
Você precisa executar o comando como um usuário que tenha permissão de gravação no diretório /foo/bar
para remoção do shop
diretório.
Se você deseja monitorar mv
também as operações de gravação, adicione watch for moved_to
event também:
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") }'