这是我试图解决的问题:
- 假设我有一个目录“A”,其中包含一些文件以及其他一些目录。
- 我想把A目录下的所有文件复制到B目录下。
- 我想递归地将文件夹A内的所有文件夹复制到文件夹C。
在 UNIX/Linux 中实现此目的最短且不特定于平台的方法是什么?
答案1
大概是这样的
find A -type f -maxdepth 1 -exec cp {} B/ \;
和
find A -type d -maxdepth 1 -mindepth 1 -exec cp -r {} C/ \;
其中-type
是一个标志,确定您要查找的类型(文件或目录)、- maxdepth
目录深度以及-exec
对结果执行命令。
答案2
您可以使用cp
复制目录,给出以/
,结尾的 glob 模式
cp -a A/*/ C/
并且您可以在不使用-a
(类似于-r
)选项的情况下复制文件
cp A/* B/
尽管最后一个命令会在未复制的目录上给出无害的错误。