gni*_*urf 14
如果你的照片是在/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' -- {} +
Run Code Online (Sandbox Code Playgroud)
如果您不想按扩展名过滤,只需移动所有内容(即所有文件):
find /path/to/photos -type f -exec mv -nv -t '/path/to/master' -- {} +
Run Code Online (Sandbox Code Playgroud)
该-n选项是为了不覆盖现有文件(如果你不关心可选)和-v选项,以mv显示它正在做什么(非常可选).
该-t选项mv是指定目标目录,这样我们就可以堆叠中的所有文件,在命令结束移动(见+的分隔符-exec).如果您mv不支持-t:
find /path/to/photos \( -iname '*.jpg' -o -iname '*.png' \) -type f -exec mv -nv -- {} '/path/to/master' \;
Run Code Online (Sandbox Code Playgroud)
但这样效率会降低,因为mv将为每个文件创建一个实例.
顺便说一句,这会移动文件,它不会复制它们.
备注.
/path/to/master必须已存在(此命令不会创建该目录)./path/to/master 是不是在/path/to/photos.这会让事情变得尴尬!