Eu sou capaz de usar o seguinte para remover o diretório de destino e recursivamente todos os seus subdiretórios e conteúdos.
find '/target/directory/' -type d -name '*' -print0 | xargs -0 rm -rf
No entanto, não quero que o diretório de destino seja removido. Como posso remover apenas os arquivos no destino, os subdiretórios e seu conteúdo?
linux
macos
command-line
terminal
Michael Prescott
fonte
fonte
Mais três opções.
Usar
find
com-mindepth 1
e-delete
:2. Use
find
, mas com arquivos, não diretórios. Isso evita a necessidade derm -rf
:3. Vá em frente e remova o diretório pai, mas recrie-o. Você poderia criar uma função bash para fazer isso com um comando; aqui está um simples one-liner:
fonte
E se
Se houver arquivos começando com. no diretório de destino.
Este segundo vai combinar tudo começando com um., Exceto. e .. Ele falhará em nomes como .a, mas isso não é muito comum. Pode ser ajustado, se necessário, para cobrir todos os casos.
fonte
fonte