Seu rmdir funciona se houver arquivos no subdiretório?
Jeff Schaller
1
Consulte também a chamada de sistema de mesmo nome rmdir(2)que pode remover apenas diretórios vazios.
David Foerster
4
A propósito, existe um procedimento "correto" para o uso rm -r: (1) Digite o comando, mas não o insira (2) Afaste as mãos do teclado (3) Conte até cinco (4) Pressione ENTER. Comecei a fazer algo assim com todos os comandos perigosos, para me dar uma chance de olhar para o que estou fazendo, certificar-se de digitar as coisas corretamente, pensar se poderia haver consequências inesperadas etc. Ocasionalmente, isso me leva para apagar meu comando e fazer algumas verificações extras primeiro, por exemplo.
ajb 02/07/19
3
@ajb rm -rf ~ /*- limpa meu diretório pessoal. Ou espere, talvez limpe o sistema. Sempre bom verificar novamente;).
Tom Carpenter
1
@ajb Observe que rmdire rm -rsão duas strings do mesmo comprimento :-)
Kusalananda
Respostas:
14
rm -rremove um diretório e todo o seu conteúdo; rmdirsó removerá um diretório se o diretório estiver vazio. Eu gosto de usar o seguinte para remover um diretório e todo o seu conteúdo:
Observe que você geralmente não deve usar -fse não precisar. É fácil de usar -rfsempre, mas desativa (quase) todas as verificações de segurança.
allo
5
-1 para recomendação uneccesary de de rm -fbandeira que pode ter, consequências imprevisíveis unrevertable
gato
Então rmdiré só rm -d?
Stan Strum
@StanStrum -dnão é uma opção padrão para rm.
Kusalananda
@cat O rmcomando em geral pode ter essas consequências. O -fsinalizador é útil quando executado set -eem um script. Concordo que usar sem pensar é desnecessário .
Kusalananda
1
Você deve usar rm -rquando quiser remover recursivamente um diretório e todo o seu conteúdo, ou quando o destino puder ser um diretório ou arquivo e desejar excluí-lo, independentemente do que seja.
Você deve usar rmdirquando desejar remover um diretório vazio.
O rmdircomando é útil, pois se recusa a remover diretórios e arquivos não vazios. Isso serve como uma captura de segurança em situações nas quais você pode ter certeza absoluta de que o que está excluindo é um diretório e que o diretório está vazio antes de excluí-lo (por exemplo, em um script) e deseja tratá-lo como uma condição de erro de outra forma.
rmdir(2)
que pode remover apenas diretórios vazios.rm -r
: (1) Digite o comando, mas não o insira (2) Afaste as mãos do teclado (3) Conte até cinco (4) Pressione ENTER. Comecei a fazer algo assim com todos os comandos perigosos, para me dar uma chance de olhar para o que estou fazendo, certificar-se de digitar as coisas corretamente, pensar se poderia haver consequências inesperadas etc. Ocasionalmente, isso me leva para apagar meu comando e fazer algumas verificações extras primeiro, por exemplo.rm -rf ~ /*
- limpa meu diretório pessoal. Ou espere, talvez limpe o sistema. Sempre bom verificar novamente;).rmdir
erm -r
são duas strings do mesmo comprimento :-)Respostas:
rm -r
remove um diretório e todo o seu conteúdo;rmdir
só removerá um diretório se o diretório estiver vazio. Eu gosto de usar o seguinte para remover um diretório e todo o seu conteúdo:fonte
-f
se não precisar. É fácil de usar-rf
sempre, mas desativa (quase) todas as verificações de segurança.-f
bandeira que pode ter, consequências imprevisíveis unrevertablermdir
é sórm -d
?-d
não é uma opção padrão pararm
.rm
comando em geral pode ter essas consequências. O-f
sinalizador é útil quando executadoset -e
em um script. Concordo que usar sem pensar é desnecessário .Você deve usar
rm -r
quando quiser remover recursivamente um diretório e todo o seu conteúdo, ou quando o destino puder ser um diretório ou arquivo e desejar excluí-lo, independentemente do que seja.Você deve usar
rmdir
quando desejar remover um diretório vazio.O
rmdir
comando é útil, pois se recusa a remover diretórios e arquivos não vazios. Isso serve como uma captura de segurança em situações nas quais você pode ter certeza absoluta de que o que está excluindo é um diretório e que o diretório está vazio antes de excluí-lo (por exemplo, em um script) e deseja tratá-lo como uma condição de erro de outra forma.fonte