Algo que sinto que devo ter certeza: se remover ls <something>
, rm <something>
removerei exatamente os mesmos arquivos ls
exibidos? Existe alguma circunstância em que você rm
possa remover arquivos que ls
não foram exibidos? (Isso é no bash 18.04)
Edit: obrigado a todos que responderam. Penso que a resposta completa é uma combinação de todas as respostas, pelo que aceitei a resposta mais votada como "a resposta".
Coisas inesperadas que aprendi ao longo do caminho:
ls
não é tão simples quanto você imagina ao lidar com seus argumentos- Em uma instalação simples e sem complicações do Ubuntu, aliases .bashrc
ls
- Não nomeie seus arquivos começando com um hífen, pois podem parecer argumentos de comando, e nomear um -r é pedir!
find -delete
seria melhor do que rm
? Você diz "É por isso" , mas não está totalmente claro para mim a que isso se refere. Observe também que sua find
chamada excluirá todos os arquivos recursivamente no diretório atual, onde rm
apenas excluirá os arquivos no diretório imediato. Também -name *
é um no-op. Tudo em tudo, estou muito intrigado com o seu conselho ...
find
é que você pode executá-lo, ver todos os arquivos e, em seguida, executar o mesmo comando com -delete
. Desde que você já viu os resultados find
, não deve haver nenhuma ambigüidade ao que será removido (que eu realmente gostaria de ouvir mais detalhes sobre isso na forma de uma resposta)
-delete
" - Mas como isso é melhor do que executar ls <filespec>
, seguido por rm <filespec>
(que o OP já sabe como fazer)?
find ... -print
primeiro para confirmar quais arquivos serão excluídos e find ... -delete
, em seguida , ainda excluirá os arquivos criados entre os dois comandos. Se você usa os dois -print
e -delete
não obtém confirmação, apenas um relatório posterior do que foi excluído (e você também pode usar rm -v
).
rm
não tenha uma--dry-run
bandeira ...