我想输入通过ls
命令重新调整的每个目录并执行脚本。
我尝试了此操作(以及其他许多操作),但是它不起作用
ls | awk '{print $1" && pwd"}' | xargs cd
没有for循环怎么办?
如果可以的话,几乎总是避免使用find
其他答案中建议的方法xargs
。
但是,如果您仍然想使用xargs
,则可能的替代方法如下:
printf '%s\0' */ | xargs -0 -L1 bash -c 'cd -- "$1" && pwd' _
一些注意事项:
*/
扩展到当前文件夹中的目录列表,多亏了斜杠
printf
用\0
(空字节)将每一行的元素分开
选择-L1
以xargs
使得它一旦对每个输入行都执行和选项-0
使得输入的空字节分开:文件名可以包含任何字符,该命令不破!
bash
删除双引号并将其作为单个参数传递给内联脚本,但cd
应再次放置双引号以将其解释为单个字符串;使用--
使cd
命令对于以连字符开头的文件名具有鲁棒性
为了避免奇怪地将$0
用作参数,通常会放置第一个虚拟参数_
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句