O mais próximo que cheguei é
# rm /path/to/directory/*.*
mas isso não funciona para arquivos que não têm uma extensão...
O mais próximo que cheguei é
# rm /path/to/directory/*.*
mas isso não funciona para arquivos que não têm uma extensão...
O Linux não usa extensões. Cabe ao criador do arquivo decidir se o nome deve ter uma extensão. O Linux analisa os primeiros bytes para descobrir com que tipo de arquivo está lidando.
Remover arquivos não ocultos* em um uso de diretório:
rm /path/to/directory/*
No entanto, isso mostrará um erro para cada subdiretório, porque neste modo só é permitido excluir arquivos.
Para remover todos os arquivos e subdiretórios não ocultos (junto com todo o seu conteúdo) em um uso de diretório:
rm -r /path/to/directory/*
* Arquivos e diretórios ocultos são aqueles cujos nomes começam com .
(ponto) personagem, por exemplo.: .hidden-file
ou .hidden-directory/
. Observe que, em Bash, se o dotglob
Opcao (que está desativado por padrão) está definido, rm
atuará em arquivos ocultos também, porque eles serão incluídos quando *
é expandido pelo shell para fornecer a lista de argumentos do nome do arquivo.
Para remover uma pasta com todo o seu conteúdo (incluindo todas as pastas interiores):
rm -rf /path/to/directory
Para remover todos os conteúdo da pasta (incluindo todas as pastas interiores), mas não a própria pasta:
rm -rf /path/to/directory/*
ou, se você quiser ter certeza de que os arquivos/diretórios ocultos também são removidos:
rm -rf /path/to/directory/{*,.*}
Para remover todos os" arquivos & quot; de dentro de uma pasta(nao removendo pastas interiores):
rm -f /path/to/directory/{*,.*}
Aviso: se você tiver espaços em seu caminho, certifique-se de Sempre usar aspas.
rm -rf /path/to the/directory/*
é equivalente a 2 separados rm -rf
chama:
rm -rf /path/torm -rf the/directory/*
Para evitar esse problema, você pode usar '
plica'
(evita todas as expansões, mesmo de variáveis de shell) ou "
aspa"
(permite a expansão de variáveis de shell, mas evita outras expansões):
rm -rf "/path/to the/directory/"*
Onde:
rm
- significa remover
-f
- significa forca o que é útil quando você não deseja ser solicitado / solicitado se deseja remover um arquivo, por exemplo.-r
- significa recorrente o que significa que você deseja descer recursivamente todas as pastas e remover tudo.Para remover todos os arquivos no diretório (incluindo arquivos ocultos e subdiretórios) executar:
rm -rf /path/to/directory/{*,.*}
Para excluir todos os arquivos e diretórios (incluindo o oculto ones) em um diretório, você pode tentar o seguinte:
exclua a pasta e recrie-a
rm -rf dir_name && mkdir dir_name
usar find
find dir_name -mindepth 1 -delete
Aqui nós especificamos -mindepth 1
para excluir o próprio diretório dir_name.
Dê uma olhada no seguinte link:
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory
Se você deseja excluir apenas arquivos no diretório/path/to/, Você pode fazer
find /path/to/directory -type f -print0| xargs -0 rm
ou
find /path/to/directory -type f -exec rm '{}' \;
Você pode fazer cargas com find
, a vantagem é que você pode listar o que é encontrado sem canalizá-lo para rm
então você pode ver o que será excluído antes de começar.
Se você também deseja remover todos os subdiretórios e o próprio diretório, você pode usar rm -rf /path/to/directory
. Mas sempre verifique sua linha antes de pressionar return, rm -rf
pode causar muito havock também, por exemplo, se você inserir acidentalmente um espaço após a primeira barra enquanto tem permissões de superusuário...
Uma vez que esta questão está constantemente no topo do Google quando eu mesmo procuro por isso:
As outras respostas sofrem de diferentes problemas:
Alguns deles incluem .
e ..
o que é barulhento, confuso e irritante.
Alguns deles esquecem arquivos ocultos (arquivos começando com um ponto).
Eles não excluem em uma ordem correta (mais profunda) para permitir a exclusão do diretório.
Eles descem para outros sistemas de arquivos (montados), que geralmente não são desejados.
Eles são difíceis de estender corretamente com parâmetros extras (mais sobre isso abaixo).
find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --
Observe que adicionei um -xdev
argumento para evitar descer em montarias (como /proc
etc.).
-depth
ou -delete
?Apesar das pessoas constantemente me rebaixarem para isso, esses métodos têm uma desvantagem: não parece que sejam extensíveis o suficiente para permitir -prune
um subdiretório (sem introduzir mais problemas). Em contraste com este método, você pode inserir
-not \( -path "${DIR}/subdir" -prune \)
antes do -mindepth
argumento para excluir subdir
de ter seu conteúdo excluído.
Você pode cd
no diretório e, em seguida, execute o comando rm *.*
assim como no DOS, se você se lembra.
Para excluir o diretório atual, você pode, por exemplo, usar rm -d ./*
- D diz para excluir diretórios também.
Veja a resposta aqui, isso pode remover arquivos ocultos também sem qualquer aviso e excluir o próprio diretório ubuntu - Delete contents but not directory in Linux? - Stack Overflow
Não tenho reputação suficiente para adicionar uma resposta real, mas ao usar a solução shopt-s dotglob && rm /path/to/directory/*
no bash, (shopt-s dotglob & & & rm /path/to/directory/*)
(com parênteses) impedirá que shopt-s dotglob
vaze além deste comando. (Parênteses executam os comandos contidos em uma subcamada.)