Individua ed elimina tutti i file temporanei nella directory utente


12

Uso vim molto e la mia area ha molte interruzioni di corrente. Quindi il risultato è che ottengo molti *.swpfile sparsi sul mio PC.

Voglio un alias di rmcomando che rimuove tutti i file con entrambi .swp, ~, .netrwhist, .logo .baksistema di estensioni a livello (o almeno nella mia home directory) . Il comando dovrebbe eliminare la directory wide / home del file system anche quando sono attivo ~/Desktop.

Come posso implementarlo?


Che ne dici di:find ./ -name \*\~ | xargs /bin/rm
Emanuel Berg,

Inoltre, se i ~file ti danno bug, alias ls to ls -B. Almeno non li vedrai.
Emanuel Berg,

@EmanuelBerg find ./ -name \*\~ | xargs /bin/rmnon funziona quando sono su ~ / Desktop e c'è un ~file nella directory home. Vedi la mia domanda, cosa ho detto.
Santosh Kumar,

3
Tre parole: gruppo di continuità . Non accendo un computer senza uno.
cjm

2
@Santosh, allora hai bisogno di un UPS migliore. Una durata minima dovrebbe essere di 5 minuti. 8 secondi non ti danno nemmeno il tempo di spegnere il computer (come hai ovviamente notato).
cjm

Risposte:


11

Questo cancella tutti i file con un nome che termina con .swp, ~, .netrwhist, .logo .bakovunque sotto la vostra directory home. Nessun prompt, nessuna conferma, nessun recupero, i file sono andati per sempre.

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

(Ometto intenzionalmente *.logperché sembra pericoloso, questa non è un'estensione comune per i file temporanei e ci sono molti file non temporanei con quel nome.)

Se il tuo sistema operativo non è Linux, sostituiscilo -deletecon -exec rm {} +.

Forse dovresti configurare Vim per mettere i suoi file di swap in una singola directory impostando l' directoryopzione :

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

Crea prima la directory. Alla //fine, il nome del file di scambio include il percorso della directory del file originale, in modo che i file con lo stesso nome in directory diverse non causino un arresto anomalo.

Puoi fare la stessa cosa per i file di backup con l' backupdiropzione , anche se ha molto meno senso.

Se usi Emacs, imposta il auto-save-file-name-transformspuntamento di ogni file su una singola directory.

(setq auto-save-file-name-transforms
      '("\\`.*\\'" "~/tmp/emacs-auto-save-files/\\&" t))

1

Se scegli come target specifici file vim, ti consiglio di utilizzare la backupdirvariabile. :h backupdirdice:

'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 ...]

Uso questa riga nel mio .vimrc:

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

Inoltre devi creare la directory ~ / .vim-tmp se non esiste già, perché non lo crea per te.


OK, è utile. Ma gedit genera *~file.
Santosh Kumar,

0

Risposta breve Elimina i temporali che terminano con ~

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

O altri come .swap ecc.

find . -type f \( -iname "*.swp" \) -delete
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.