受到这个问题的启发。简而言之,最初的问题是“如何将所有文件全部:2f
转换-
为文件夹内的所有文件”。例如,如果我有一个文件,./abc:2fdef
它应该重命名为./abc-def
.
起初我认为这是一个简单的任务......find
所有文件然后sed
替换:2f
为-
. 在尝试构建单行时,我想出了以下命令:
find . -type f -name '*:2f*' | xargs -I {} mv {} $(echo {} | sed "s/:2f/-/ig")
Run Code Online (Sandbox Code Playgroud)
但是它不起作用。经过大量测试,我发现问题出在xargs
部分 - $() 在用文件名xargs
替换地方之前执行{}
。详细说明,
xargs -I {} mv {} $(echo {} | sed "s/:2f/-/ig")
Run Code Online (Sandbox Code Playgroud)
被评估为($(...)
被评估)
xargs -I {} mv {} {}
Run Code Online (Sandbox Code Playgroud)
进而
mv ./abc:2fdef ./abc:2fdef
Run Code Online (Sandbox Code Playgroud)
这不是我所期待的。所以,我的问题是,{}
在评估$(...)
零件之前,我可以让 xargs 全部替换为文件名吗?
每次我使用 RDT 登录机器时,我都必须从开始菜单转到调整 ClearType 文本并启用它。下次我再次登录时,它将被重置。有什么办法可以使设置“粘住”?
我所有的机器都运行win7。