Men*_*ris 4 bash command-line macos
我的文件具有以下结构:
11
--11a
-----a.jpg
-----b.jpg
-----....
--11b
-----d.jpg
-----g.jpg
...
Run Code Online (Sandbox Code Playgroud)
我想将所有 .jpg 文件放在一个文件夹中:
11
-a.jpg
-b.jpg
-d.jpg
-g.jpg
...
Run Code Online (Sandbox Code Playgroud)
基本上我有包含许多 .jpg 文件的子文件夹,我想将它们全部移动到一个目录(例如父目录)。
我已经尝试过:
mv */*.jpg all但我明白了-bash: /bin/mv: Argument list too long。
如果文件名是唯一的,请使用:
find {base folder}/11 -name "*.jpg" -exec mv {} {base folder}/11/ \;
Run Code Online (Sandbox Code Playgroud)
where{base folder}是目录11所在的位置。
这会mv依次在每个文件上运行命令:这比在单个mv命令中移动所有文件要慢得多,但参数列表的长度没有限制。
如果某些文件名可能是大写,您可以-iname使用-name. 您还可以添加-n以确保不会覆盖已移动的文件(您需要检查您是否mv有此选项 - 如果不使用-i,尽管这会提示冲突)。
您可以使用以下方法删除任何空目录:
rmdir {base folder}/11/*
Run Code Online (Sandbox Code Playgroud)
您将需要调查此命令之后剩余的所有目录。
| 归档时间: |
|
| 查看次数: |
7397 次 |
| 最近记录: |