Localize e exclua todos os arquivos temporários no diretório do usuário

11

Eu uso muito o vim, e minha área tem muita falta de energia. Então, o resultado é que eu recebo muitos arquivos *.swp espalhados pelo meu PC.

Eu quero um alias do comando rm que remove todos os arquivos com .swp , ~ , .netrwhist , .log ou .bak extensões em todo o sistema (ou pelo menos no meu diretório pessoal ) . O comando deve excluir o diretório / home do sistema de arquivos mesmo quando eu estiver em ~/Desktop .

Como posso implementar isso?

    
por Santosh Kumar 18.08.2012 / 18:44

3 respostas

11

Isso excluirá todos os arquivos com um nome que termine com .swp , ~ , .netrwhist , .log ou .bak em qualquer lugar em seu diretório pessoal. Sem aviso, sem confirmação, sem recuperação, os arquivos sumiram para sempre.

find ~ -type f \( -name '*.swp' -o -name '*~' -o -name '*.bak' -o -name '.netrwhist' \) -delete

(Eu propositadamente omiti *.log porque parece perigoso, esta não é uma extensão comum para arquivos temporários e há muitos arquivos não temporários com esse nome.)

Se o seu sistema operacional não for Linux, substitua -delete por -exec rm {} + .

Você talvez deva configurar o Vim para colocar seus arquivos de swap em um único diretório, definindo o directory opção :

set dir=~/tmp/vim-swap-files//,/var/tmp//

Crie o diretório primeiro. O // no final faz com que o nome do arquivo de troca inclua o local do diretório do arquivo original, para que os arquivos com o mesmo nome em diretórios diferentes não causem uma falha.

Você pode fazer o mesmo para arquivos de backup com a backupdir opção , embora faça muito menos sentido.

Se você usa o Emacs, defina auto-save-file-name-transforms para apontar todos os arquivos para um único diretório.

(setq auto-save-file-name-transforms
      '("\'.*\'" "~/tmp/emacs-auto-save-files/\&" t))
    
por 18.08.2012 / 19:32
1

Se você estiver segmentando arquivos vim especificamente, recomendo que use a variável backupdir . :h backupdir diz:

'backupdir' 'bdir'      string  (default for Amiga: ".,t:",
                                 for MS-DOS and Win32: ".,c:/tmp,c:/temp"
                                 for Unix: ".,~/tmp,~/")
                        global
                        {not in Vi}
        List of directories for the backup file, separated with commas.
        - The backup file will be created in the first directory in the list
          where this is possible.  The directory must exist, Vim will not
          create it for you.
        [... snip ...]

Eu uso esta linha no meu .vimrc:

set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp

Além disso, você precisa criar o diretório ~ / .vim-tmp, se ele já não existir, porque não cria isso para você.

    
por 18.08.2012 / 19:01
0

Resposta curta Exclui temporais que terminam com ~

find . -type f \( -iname "*~" \) -delete

Ou outras como .swap etc.

find . -type f \( -iname "*.swp" \) -delete
    
por 03.07.2017 / 05:45