如何将多个目录合并为一个?

如何将多个目录合并为一个?

我从网络档案库下载了整个网站。现在我遇到了这种情况: 目录树

现在,如果只有 2-3 个目录,那就没问题了,但是有数百个目录。我怎样才能将其移动到一个漂亮的树中,并在文件名匹配的情况下自动重命名?

PS 我在 Windows 上,但我安装了 msys2,所以 Bash 命令也可以。

答案1

作为一个有效的 bash 命令,我会尝试这个:

cd your/peggle/download/dir/

mkdir myfiles

cp -r --backup=t */extras/* myfiles

*可以匹配任何名称(但不匹配)的通配符/--backup=t将为具有匹配名称的目标文件添加递增编号的后缀(challenges.php>> challenges.php.~1~challenges.php.~2~challenges.php.~3~等)。

这会将所有文件复制到目录<subdirectory>/extras/myfiles

然后,您可以使用 删除您不想要的剩余文件夹rm -r [0-9]*。它将递归删除以数字开头的任何元素内的所有文件和目录([0-9]匹配数字并*匹配该数字之后的任何内容) - 注意不要删除以数字开头的任何其他要保留的文件。

旁注:这种合并不一定会修复离线打开文件时的网页,因为文件内的引用可以指向在线的位置,或者指向不在您机器上的正确位置。

相关内容