Como excluir todos os arquivos .swp ocultos do terminal

7

Como posso excluir todos os arquivos .swp? Eu tentei rm *.swp mas recebi rm: *.swp: No such file or directory

rwxr-xr-x  16 teacher  staff    544 Jan 17 13:19 .
drwxr-xr-x  19 teacher  staff    646 Jan 16 12:48 ..
-rw-r--r--   1 teacher  staff  20480 Jan 17 09:48 .6-1-period-2.txt.swp
-rw-r--r--   1 teacher  staff  16384 Jan 17 09:05 .6-2-period-6.txt.swp
-rw-r--r--@  1 teacher  staff   6148 Jan 15 16:16 .DS_Store
-rw-r--r--   1 teacher  staff  12288 Jan 16 19:46 .grade8.txt.swp
-rw-r--r--   1 teacher  staff  11070 Jan 17 09:48 6-1-period-2.txt
    
por shinokada 17.01.2014 / 05:24

3 respostas

7

O que você queria fazer é

rm .*swp

O * não corresponde aos arquivos que começam com . , a menos que você liga o dotglob (assumindo que você está usando o bash):

$ ls -la
-rw-r--r--   1 terdon terdon        0 Jan 17 05:50 .foo.swp
$ ls *swp  
ls: cannot access *swp: No such file or directory
$ shopt -s dotglob
$ ls *swp
.foo.swp
    
por 17.01.2014 / 05:54
6

Se você disser: arquivos estão ocultos, eles começam com um ponto (.), então tente:

find . -type f -name ".*.swp" -exec rm -f {} \;

Com essa abordagem, você procura todos os arquivos ocultos no diretório atual e nos subdiretórios. Se você quiser excluir os arquivos ocultos apenas do diretório atual, um simples rm -f .*.swp funciona ok

    
por 17.01.2014 / 05:32
0

Tente usar isso

find . -type f -name "*.swp" -exec rm -f {} \;

-name "FILE-TO-FIND" : File pattern.
-exec rm -rf {} \; : Delete all files matched by file pattern.
-type f : Only match files and do not include directory names.
    
por 17.01.2014 / 05:28