答案1
请注意,这还会复制仅包含文件夹的文件夹,而不仅仅是包含至少一个文件的文件夹。不确定这是否正是您要找的;无论如何,我会留下这个,以防它对其他人有用。
使用find
:
find source -mindepth 2 -maxdepth 2 -type d -not -empty -exec mv {} target \;
source
: 搜索范围source/
-mindepth 2
:从指定目录层次的第二级开始搜索-maxdepth 2
:搜索在指定目录层次结构的第二级停止-type d
:仅搜索目录-not
:否定以下条件/动作-empty
:仅搜索空文件夹-exec [...]
:对于每个结果,执行以下命令mv {} target \;
:将每个结果移动到target/
user@debian ~/tmp % tree
.
├── source
│ ├── folder A
│ │ └── folder A
│ │ ├── file1
│ │ ├── file2
│ │ └── file3
│ └── folder B
│ └── folder B
└── target
6 directories, 3 files
user@debian ~/tmp % find source -mindepth 2 -maxdepth 2 -type d -not -empty -exec mv {} target \;
user@debian ~/tmp % tree
.
├── source
│ ├── folder A
│ └── folder B
│ └── folder B
└── target
└── folder A
├── file1
├── file2
└── file3
6 directories, 3 files
答案2
尝试这个:
cp -r /folderA/folderA /newdestination/
命令cp
复制文件或目录,后面跟着-r
,它会递归复制目标中的子目录。请注意路径后的斜线或缺失斜线。有关复制的更多信息这里。