使用 cp 和 rm 命令一次操作多个特定文件夹
Operating on multiple specific folders at once with cp and rm commands
我是linux的新手(使用bash),我想问一下我工作时经常做的事情,我举两个例子。
- 正在删除特定目录中的多个特定文件夹。
- 正在将多个特定文件夹复制到 ceratin 目录中。
我使用 files 成功完成了此操作,使用 find 和一些正则表达式,然后使用 -exec 和 -delete。但是对于文件夹,我发现它更有问题,因为我在管道化文件夹列表时遇到了问题,我成功地到达了 cp/rm 命令,每次都收到“没有这样的文件或目录错误”。
在线查找我发现了以下命令(在我的例子中用于复制所有以 Z 开头的文件夹):
cp -r $(ls -A | grep "Z*") destination
但是当我执行它时,它什么也没说,提示不会再次出现,直到我按下 Ctrl+C 并且没有复制任何内容。
我怎样才能实现我正在寻找的东西?对于 cp
和 rm
.
提前致谢!
首先,您正在尝试 grep "Z*",但这意味着您正在寻找 Z、ZZ、ZZZZ、ZZZZZ?
也尝试执行 ls -A - 你会得到多列。我认为至少需要 ls -1A 才能每行打印一个结果。
因此,对于您的命令,请尝试以下操作:
cp -r $(ls -1A|grep "^p") destination
或
cp -r $(ls -1A|grep "^p") -t destination
但以上所有只是为了更正您的示例的语法。
使用 find 会好很多。以防万一尝试将目标目录置于配额中,例如:
find <PATH_FROM> -type d -exec cp -r \"{}\" -t target \;
我是linux的新手(使用bash),我想问一下我工作时经常做的事情,我举两个例子。
- 正在删除特定目录中的多个特定文件夹。
- 正在将多个特定文件夹复制到 ceratin 目录中。
我使用 files 成功完成了此操作,使用 find 和一些正则表达式,然后使用 -exec 和 -delete。但是对于文件夹,我发现它更有问题,因为我在管道化文件夹列表时遇到了问题,我成功地到达了 cp/rm 命令,每次都收到“没有这样的文件或目录错误”。
在线查找我发现了以下命令(在我的例子中用于复制所有以 Z 开头的文件夹):
cp -r $(ls -A | grep "Z*") destination
但是当我执行它时,它什么也没说,提示不会再次出现,直到我按下 Ctrl+C 并且没有复制任何内容。
我怎样才能实现我正在寻找的东西?对于 cp
和 rm
.
提前致谢!
首先,您正在尝试 grep "Z*",但这意味着您正在寻找 Z、ZZ、ZZZZ、ZZZZZ? 也尝试执行 ls -A - 你会得到多列。我认为至少需要 ls -1A 才能每行打印一个结果。 因此,对于您的命令,请尝试以下操作:
cp -r $(ls -1A|grep "^p") destination
或
cp -r $(ls -1A|grep "^p") -t destination
但以上所有只是为了更正您的示例的语法。 使用 find 会好很多。以防万一尝试将目标目录置于配额中,例如:
find <PATH_FROM> -type d -exec cp -r \"{}\" -t target \;