小编Ken*_*h L的帖子

将 xargs 与 $() 一起使用 - 运算符优先级?

受到这个问题的启发。简而言之,最初的问题是“如何将所有文件全部: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 全部替换为文件名吗?

linux bash xargs

3
推荐指数
1
解决办法
806
查看次数

远程桌面:如何在 Win7 中始终启用 ClearType?

每次我使用 RDT 登录机器时,我都必须从开始菜单转到调整 ClearType 文本并启用它。下次我再次登录时,它将被重置。有什么办法可以使设置“粘住”?

我所有的机器都运行win7。

remote-desktop windows-7

1
推荐指数
1
解决办法
1788
查看次数

标签 统计

bash ×1

linux ×1

remote-desktop ×1

windows-7 ×1

xargs ×1