| folderA1 | fileA11, fileA12, ...
folderA | folderA2 | fileA21, fileA22...
| ... | ...
我想复制它,表示为:
| folderA1 | folderA11, folderA12, ...
folderB | folderA2 | folderA21, folderA22, ...
| ... | ...
原始文件夹A(及其结构)保持原样(不变)。
我正在尝试创建一个文件夹in(文件夹)B 表示(文件夹)A 中的每个文件,不包含文件夹本身。我还想保留原始文件夹(A)的目录结构。
使用这个问题我能够实现上述生成,但它包含文件夹 A 本身。
find source/. -type d -exec mkdir -p dest/{} \; \
-o -type f -exec mkdir -p dest/{} \;
好像:
| | folderA1 | folderA11, folderA12, ...
folderB | folderA | folderA2 | folderA21, folderA22, ...
| | ...
答案1
您可以从那里cd
进入folderA
并运行命令:
cd folderA
find . -type d -o -type f -exec bash -c '
for path; do mkdir -p "/path/to/folderB/${path/file/folder}"; done
' bash {} +
参数扩展${path/file/folder}
将each重命名fileXY
为folderXY
.
如果每个文件夹都包含文件,您可以删除-type d -o
.