用 find 和 mv 把多层子文件夹的文件摊平
一条命令把所有子文件夹里的文件移到顶层文件夹。
运行 find -mindepth 2 -type f -exec mv -n {} . ,即可把嵌套文件全部上移到当前目录。
01命令
命令
$ cd ~/Desktop/MessyFolder && find . -mindepth 2 -type f -exec mv -n {} . \;02作用说明
-mindepth 2 会跳过顶层的文件让它们原地不动;mv -n 遇到两个子文件夹里有同名文件时会拒绝覆盖,多余文件留在原地。想只摊平某类文件,把条件改成 -iname "*.jpg" -type f;摊平后留下的空文件夹用 find . -type d -empty -delete 一并删除。
03风险
!注意: 不同子文件夹的同名文件会冲突,-n 参数会让多余文件留在原处而不是被覆盖。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- find – Walk a file hierarchy依据: find -mindepth 2 -type f matches files below the top level; -exec mv -n {} . moves each one up without overwriting.
最后验证: 2026-09-18 · 分类: 文件与文件夹