我经常使用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