找到并删除用户目录中的所有临时文件

找到并删除用户目录中的所有临时文件

我经常使用vim,而且我所在的地区经常停电。所以结果是我*.swp的电脑上散布着许多文件。

我想要一个命令别名,用于删除系统范围rm内具有.swp~.netrwhist或扩展名.log的所有文件.bak(或者至少在我的主目录中)。即使我在~/Desktop.

我该如何实施呢?

答案1

这将删除主目录下名称以.swp~.netrwhist.log任何位置结尾的所有文件。.bak没有提示,没有确认,没有恢复,文件就永远消失了。

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

(我故意省略,*.log因为这听起来很危险,这不是临时文件的常见扩展名,并且有很多具有该名称的非临时文件。)

如果您的操作系统不是 Linux,请替换-delete-exec rm {} +.

你也许应该配置 Vim 将其交换文件放在一个目录中,方法是设置directory选项:

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))

答案2

如果您专门针对 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 目录不存在,您还需要创建它,因为它不会为您创建该目录。

答案3

简短回答 删除以 ~ 结尾的时态

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

或者其他像 .swap 等..

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

相关内容