shell批量移动文件

将当前目录下面包括子目录中的png文件移动至指定的target目录

mv `find . -name “*.png”` ./target
或者
//{}表示find搜索的结果,\表示结束
find . name "*.png" -exec mv {} target/ \;

对一个的shell脚本

#!/bin/bash

for file in `find . -name “*.png”`
do
    mv $file ./target
done

通常我们使用如下的方式去批量删除文件:

find . -name “*.png” | xargs rm -rf

那是否可以采用类似方式通过find命令来批量移动文件呢?

find . -name “*.png” | xargs mv /tmp

很遗憾,不能采用这种方式来实现
理由:像cd和ls命令只需要一个input,而像mv和cp等命令都需要两个input,需要source和target。通过管道只能获得一个input。

你可能感兴趣的:(shell批量移动文件)