我已经开始使用fish
,我明白fish
和常规bash 之间有几个主要的区别(我使用过mac终端).
我的一些别名没有用,我能解决.但是,我无法解决以下问题.基本上,我想删除所有与给定扩展名匹配的文件.
alias texclr=rm -v *.aux *.log *.out *.spl *.bbl *.synctex.gz *.blg *.lof *.lot *.tdo *.toc *.idx *.nav *.snm *.a* *.g* *.l* *.ist *.run.xml *-blx.* *.fff *.bcf
Run Code Online (Sandbox Code Playgroud)
但是,它似乎不起作用,并在第一次出现不匹配的文件时产生错误.
我的问题是:
任何指针都会有所帮助.
鱼,因为2.3.0版本,将打印错误,不是不匹配的水珠,除了为每个命令执行命令for
,set
和count
.
这意味着您应该将匹配的文件分配给变量
set -l files *.aux *.log # and so on
Run Code Online (Sandbox Code Playgroud)
因为这需要第二个命令,它应该是一个完整的函数而不是别名(无论如何,在fish中只是函数的语法糖):
function texclr
set -l files *.aux *.log *.out *.spl *.bbl *.synctex.gz *.blg *.lof *.lot *.tdo *.toc *.idx *.nav *.snm *.a* *.g* *.l* *.ist *.run.xml *-blx.* *.fff *.bcf
rm -v $files
end
Run Code Online (Sandbox Code Playgroud)
如果你想rm
在没有匹配文件的情况下根本不执行(为了避免丑陋的错误消息),你可以使用set -q files[1]; and rm -v $files
.
归档时间: |
|
查看次数: |
70 次 |
最近记录: |