Localiza e remove subdiretórios sem erro?

2

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 .

    
por Korey Hinton 18.07.2013 / 00:34

1 resposta

3

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 {} +
    
por 18.07.2013 / 01:48