Remove todos os arquivos que não estão funcionando com “*”

1

Eu quero remover todos os arquivos e pastas na pasta / home / user Estou usando o comando

rm -rf /home/user/*

sem sucesso, depois tentei:

cd /home/user;rm -rf *

Qual é a saída a seguir

rm: cannot lstat '*': No such file or directory

Como resolvo isso? Se eu estou excluindo um arquivo por um, ele funciona, mas com "*" isso não acontece.

    
por user77473 07.04.2011 / 11:04

3 respostas

1

O seu usuário tem acesso de leitura aos arquivos que você deseja remover? Como são os nomes de arquivos? Se eles começarem com um . , eles poderão não ser escolhidos pelo * .

Para excluir arquivos que começam com . no diretório atual, você pode usar o truque antigo de find piped para xargs :

find . -name '.*' -maxdepth 1 -type f | xargs rm

Tente primeiro sem o | xargs rm para ver se os arquivos retornados por find correspondem ao que você espera e, em seguida, execute-o novamente com o canal.

Se você também quiser procurar por arquivos de forma recursiva, simplesmente tire o -maxdepth 1 do comando.

    
por 07.04.2011 / 11:08
0

E sobre:

find /home/user -delete

Mas tenha cuidado - leia a página do manual para encontrar primeiro! Ou treine um pouco em um diretório específico.

    
por 07.04.2011 / 12:54
0

Eu só uso rm -rf /home/user .

    
por 13.06.2011 / 05:27

Tags