Excluindo todos os arquivos, exceto pastas dentro do diretório

2

Ainda sou muito novo em comandos baseados em terminal, mas enquanto fazia um comando rsync entre local e remoto, acidentalmente 'copiei' os arquivos para o lugar errado (ex. / serA / items) em vez de / serA / itens / count01

E, atualmente, o diretório / items consiste na pasta count01 e em vários outros itens com os mesmos conteúdos que os contados em count01

Existe uma maneira rápida de excluir todos esses itens copiados incorretamente (há diferentes formatos de arquivo) sem tocar na pasta count01? Embora eu possa usar 'rm -f', mas é um processo tedioso, pois há mais de 100 arquivos ...

Além disso, não consigo excluir os arquivos manualmente, pois eles estão sob outro nome e a permissão parece estar bloqueada.

    
por dissidia 03.09.2015 / 18:14

4 respostas

4

find . -maxdepth 1 -type f -delete

No entanto, se você não tiver permissão para excluí-los, isso não funcionará.

    
por 03.09.2015 / 18:18
3

Você tem vários arquivos e pastas:

$ ls
count01  file_a  file_b  file_c  folder_a  folder_b  folder_c

Para excluir todos, exceto count01 :

$ rm -r !(count01)
$ ls
count01
    
por 03.09.2015 / 20:01
0

Eu recomendo usar os comandos pipline da seguinte forma:

find "actual/path" -type f | grep -v "actual/path/plus/foler/to/conserve" |xargs rm

primeira parte: encontre todos os arquivos no diretório real com o -type f

segunda parte: exclua seu caminho que você precisa conservar com o -v

última parte: remova todos os arquivos que respondem da primeira parte e segunda parte

Em suma, você poderia simplesmente fazer:

cd
find . -type f | grep -v /serA/items/count01 |xargs rm

com este comando todos os arquivos e pastas incluídos no seu caminho são conservados Isso é simplesmente fantástico!

    
por 22.08.2017 / 16:09
0

Comando:

ls -ltr|grep "^-"|awk '{print $9}'|xargs rm

Sempre siga as regras passo a passo. É fácil de entender e auto-explicativo. Mas concorde com TOM HUNT, para a execução do comando acima, você precisava de permissão para fazê-lo.

    
por 03.09.2015 / 23:19