find . -maxdepth 1 -type f -delete
No entanto, se você não tiver permissão para excluí-los, isso não funcionará.
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.
find . -maxdepth 1 -type f -delete
No entanto, se você não tiver permissão para excluí-los, isso não funcionará.
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
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!
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.
Tags command-line rm