Da janela do terminal:
Quando eu uso o rm
comando, ele pode remover apenas arquivos.
Quando uso o rmdir
comando, ele remove apenas pastas vazias.
Se eu tiver um diretório aninhado com arquivos e pastas em pastas com arquivos e assim por diante, existe alguma maneira de excluir todos os arquivos e pastas sem que todo o comando extenuante seja digitado?
Se isso faz diferença, estou usando o mac bash shell do terminal, não o Microsoft DOS ou o linux.
Respostas:
-r "recursivo" -f "força" (suprimir mensagens de confirmação)
Seja cuidadoso!
fonte
brew install trash
entãotrash -rf some_dir
Isso moverá o diretório indesejado para a lixeira, em vez de apenas desaparecer o estilo Prestige para o éter. ( source )Removeria tudo (pastas e arquivos) no diretório atual.
Mas tenha cuidado! Somente execute este comando se tiver certeza absoluta de que está no diretório certo.
fonte
ls -R *
primeiro para ver o que será deletado porrm -rf *
Sim existe. A
-r
opção dizrm
ser r ecursive, e remover toda a hierarquia de arquivos raiz em seus argumentos; em outras palavras, se for fornecido um diretório, ele removerá todo o seu conteúdo e executará o que é efetivamente umrmdir
.As outras duas opções que você deve saber são
-i
e-f
.-i
significa i Nteractive; elerm
avisa antes de excluir todos os arquivos.-f
significa f orce; segue em frente e exclui tudo sem perguntar.-i
é mais seguro, mas-f
é mais rápido; use-o apenas se tiver certeza absoluta de que está excluindo a coisa certa. Você pode especificá-los com-r
ou não; é um cenário independente.E, como sempre, você pode combinar interruptores:
rm -r -i
é justorm -ri
erm -r -f
érm -rf
.Observe também que o que você está aprendendo se aplica a
bash
todos os sistemas operacionais Unix: OS X, Linux, FreeBSD etc. Na verdade,rm
a sintaxe é a mesma em praticamente todos os shell de todos os sistemas operacionais Unix. O OS X, sob o capô, é realmente um sistema BSD Unix.fonte
"rm -d"
, o que remove arquivos ou diretórios vazios. Ainda assim, +1 para o ponto em que o OS X é BSD internamente.Então, eu estava procurando em toda parte uma maneira de remover todos os arquivos em um diretório, exceto alguns diretórios e arquivos que eu queria manter por aí. Depois de muita pesquisa, criei uma maneira de fazer isso usando o find.
Essencialmente, ele usa regex para selecionar os diretórios a serem excluídos dos resultados e remove os arquivos restantes. Só queria colocá-lo aqui caso alguém mais precisasse.
fonte