我有一个主文件夹“Abc”,它有大约 800 个子文件夹。这些子文件夹中的每一个都包含许多文件(所有格式相同,比如“.doc”)。如何创建一个包含所有这些文件的主文件夹(而不是分发到子文件夹中)。我在 Windows 7 机器上使用 cygwin 终端执行此操作。
cp -r
命令复制它但将文件留在子文件夹中,因此它并没有多大帮助。我很感激这方面的帮助。谢谢!
最佳答案
假设可能存在名称冲突和多个扩展名,这将创建唯一名称,将目录路径更改为破折号(例如 a/b/c.doc
将变为 a-b-c.doc
)。从您要折叠的文件夹中运行:
# if globstar is not enabled, you'll need it.
shopt -s globstar
for file in */**; do [ -f "$file" ] && mv -i "$file" "${file//\//-}"; done
# get rid of the now-empty subdirectories.
find . -type d -empty -delete
如果您可以保证唯一的名称,这将移动文件并删除子目录。您可以将两个 .
更改为文件夹的名称并从该文件夹外运行它:
find . -depth \( -type f -exec mv -i {} . \; \) -o \( -type d -empty -delete \)
关于linux - 将子文件夹合并在一起,Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314434/