bash – 使用mv将递归的文件从多个目录移动到一个目录中
发布时间:2020-12-16 01:27:24 所属栏目:安全 来源:网络整理
导读:我目前有~40k RAW图像,它们是嵌套目录结构. (有些文件夹有多达100个子文件夹,里面装满了文件.)我想将它们全部移动到一个主目录中,没有子文件夹.怎么能用mv完成呢?我知道-r开关将递归复制,但这也复制文件夹,我不希望在主文件夹中有子目录. 如果您的照片位于/
我目前有~40k RAW图像,它们是嵌套目录结构. (有些文件夹有多达100个子文件夹,里面装满了文件.)我想将它们全部移动到一个主目录中,没有子文件夹.怎么能用mv完成呢?我知道-r开关将递归复制,但这也复制文件夹,我不希望在主文件夹中有子目录.
如果您的照片位于/ path / to / photos /及其子目录中,并且您想要移至/ path / to / master /,并且您想要通过扩展名.jpg,.JPG,.png,.PNG选择它们等:
find /path/to/photos ( -iname '*.jpg' -o -iname '*.png' ) -type f -exec mv -nv -t '/path/to/master' -- {} + 如果您不想按扩展名过滤,只需移动所有内容(即所有文件): find /path/to/photos -type f -exec mv -nv -t '/path/to/master' -- {} + -n选项是为了不覆盖现有文件(如果你不关心可选)和-v选项,以便mv显示它正在做什么(非常可选). mv的-t选项是指定目标目录,以便我们可以在命令末尾堆叠要移动的所有文件(请参阅-exec的分隔符).如果你的mv不支持-t: find /path/to/photos ( -iname '*.jpg' -o -iname '*.png' ) -type f -exec mv -nv -- {} '/path/to/master' ; 但这样效率会降低,因为将为每个文件创建一个mv实例. 顺便说一句,这会移动文件,它不会复制它们. 备注. >目录/ path / to / master必须已存在(此命令不会创建它).>确保目录/ path / to / master不在/ path / to / photos中.这会让事情变得尴尬! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |