【发布时间】:2021-07-01 11:41:06
【问题描述】:
管道结果列表到命令 - ZSH
所以我想在一个目录的过滤 ls 结果列表上调用 mv 命令:
print -l $(ls) | awk '$1 !~ /^A.*/ {print $0}'
这里我的目录中的每个文件名不都以大写“A”开头...
现在我希望对其中的每一个都调用 mv 命令,以便将它们移动到目录 ./Strings 中。
我的想法是添加 xargs:
...| xargs -0 mv ./Strings
但这反而最终将我的“字符串”目录重命名为用问号 (“?”) 分隔的每个返回文件名的组合 - -0 空字符标志的效果xargs 命令我想...
有趣的是,xargs 命令上的 wiki(此处链接到德国网站:https://wiki.ubuntuusers.de/xargs/)提供了一个示例代码-sn-p,几乎可以解决我的问题(与我的问题非常相似)尝试),但不用说不能解决我的问题。
find . -uid 1001 -print | xargs -i mv {} /tmp/Klaus/test
当我在我的上下文中尝试时,它抱怨“xargs:非法选项--i”:
find . -regex '^[^A].*' -print | xargs -i mv {} ./Strings
find -exec cmd {} +
我对我的问题进行了一些研究,通常会弹出“为什么我不能将 find 结果传递给 ...”。
这就是为什么我不想使用 find 命令和 -exec 标志提出解决方案的建议,尽管这也没有达到我想要的结果,不幸的是……:
find . -regex '^[^A].*' -exec mv {} ./Strings +
【问题讨论】: