Você pode usar o parâmetro -mindepth
de find para evitar que ele corresponda a .
no diretório de destino. Isso deve resolver seus problemas.
find /path/to/dir/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} +
Eu preciso encontrar uma maneira de remover subdiretórios de dentro de um diretório específico sem receber um erro se não existirem subdiretórios. Este comando removerá com sucesso subdiretórios se existirem
find /path/to/dir/* -maxdepth 1 -type d -exec rm -rf {} \;
Mas se não houver nenhum, receberei este erro:
find: /path/to/dir/*: No such file or directory
Além disso, estou usando o find
em vez de apenas rm
, porque há muitos diretórios para rm
para manipular e eles devem ser manipulados individualmente com find
.
Também notei que find /path/to/dir/ -maxdepth 1 -type d -exec rm -rf {} \;
sem nenhum caractere curinga também remove o diretório dir .