web-dev-qa-db-ja.com

ユーザーディレクトリ内のすべての一時ファイルを見つけて削除する

私はvimをたくさん使っていますが、私の地域では停電がたくさんあります。その結果、PCに多数の*.swpファイルが散在します。

システム全体で.swp~.netrwhist.logまたは.bakのいずれかの拡張子を持つすべてのファイルを削除するrmコマンドのエイリアスが必要です(または私のホームディレクトリに少なくとも)。コマンドは、~/Desktopを使用している場合でも、ファイルシステム全体のホームディレクトリを削除する必要があります。

どうすれば実装できますか?

12
Santosh Kumar

これにより、名前が.swp~.netrwhist.logまたは.bakで終わるすべてのファイルがホームディレクトリの下に削除されます。プロンプトなし、確認なし、回復なし、ファイルは永久に失われます。

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

*.logは意図的に省略しています。これは危険に聞こえるため、これは一時ファイルの一般的な拡張子ではなく、その名前の非一時ファイルがたくさんあります。)

OSがLinuxでない場合は、-delete-exec rm {} +に置き換えます。

directoryオプション を設定して、スワップファイルを単一のディレクトリに配置するようにVimを構成する必要があります。

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

最初にディレクトリを作成します。末尾の//を指定すると、スワップファイル名に元のファイルのディレクトリの場所が含まれるため、異なるディレクトリにある同じ名前のファイルがクラッシュすることはありません。

backupdirオプション を使用すると、バックアップファイルに対して同じことができますが、あまり意味がありません。

Emacsを使用する場合、すべてのファイルが単一のディレクトリを指すように auto-save-file-name-transforms を設定します。

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

特にvimファイルを対象にしている場合は、backupdir変数を使用することをお勧めします。 :h backupdirさんのコメント:

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

私は私の.vimrcでこの行を使用します:

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

また、〜/ .vim-tmpディレクトリがまだ存在しない場合は、それを作成しないため、作成する必要があります。

1

短い回答〜で終わるテンポラルを削除します

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

または.swapなどのような他のもの。

find . -type f \( -iname "*.swp" \) -delete
0
Jose Velandia