循环遍历目录并运行命令

时间:2021-01-03 06:45:57

标签: bash

我想运行以下命令

./mc cp --recursive local//first/second remote//first/second

我想遍历 local//first 并找到所有目录并为每个目录运行 ./mc cp

我该怎么做?

2 个答案:

答案 0 :(得分:2)

你可以使用查找工具来做这样的事情

find . -type d -exec echo {} \;

你的命令类似于

find . -type d -exec ./mc cp --recursive "local/{}" "remote/{}" \;

答案 1 :(得分:1)

如果 local//first 只包含目录,这应该适合你:

./mc cp -r local//first/* remote//first

对于一般情况,您还可以使用 find 列出所有目录:

find local//first -type d

然后使用 -exec 对该列表执行任何操作或将其通过管道传输到 xargs

find local//first -type d -path "local//first/*" -prune -exec ./mc cp --recursive {} remote//first \;

在文档(findxargs)中阅读更多内容。

相关问题