如何将子目录的所有文件移动到另一个目录

如何将子目录的所有文件移动到另一个目录

我的文件具有以下结构:

11
--11a
-----a.jpg
-----b.jpg
-----....
--11b
-----d.jpg
-----g.jpg
...

我希望有所有 .jpg 文件都放在一个文件夹中

11
-a.jpg
-b.jpg
-d.jpg
-g.jpg
...

基本上,我有许多包含.jpg 文件的子文件夹,我想将它们全部移动到一个目录(例如父目录)。

我已尝试过: mv */*.jpg all但我得到了-bash: /bin/mv: Argument list too long

有些帖子建议参数还有一些其他的寻找解决方案,但不幸的是,似乎没有什么对我有用。

答案1

如果文件名是唯一的,则使用:

find {base folder}/11 -name "*.jpg" -exec mv {} {base folder}/11/ \;

{base folder}目录所在的位置11

这将mv依次对每个文件运行命令:它比在单个命令中移动所有文件要慢得多mv,但对参数列表的长度没有限制。

如果某些文件名可以使用大写,则可以使用-iname而不是-name。您还可以添加-n以确保不会覆盖已移动的文件(您需要检查您的 是否mv有此选项 - 如果没有,请使用-i,但这会提示冲突)。

您可以使用以下方法删除所有空目录:

rmdir {base folder}/11/*

您将需要调查此命令后剩余的所有目录。

答案2

这应该像“mv/.你的扩展名 ./”

相关内容