Linux下复制指定的目录及其子目录下的文件,到其他文件夹下(4种方法)

时间:2021-11-13 13:24:40

把/oldboy目录及子目录下面 所有以.sh结尾的文件复制到 /tmp下面

手续创建环境:

mkdir -p /oldboy/test
cd /oldboy
echo "oldboy">test/del.sh
echo "oldboy">test.sh
echo "oldboy">t.sh
touch oldboy.txt
touch alex.txt

这里写图片描述
Linux下复制指定的目录及其子目录下的文件,到其他文件夹下(4种方法)
接下来进行实际复制:

  • 方法1:cp +$()
cp $(find /oldboy/ -type f -name "*.sh")  /tmp
  • 方法2:find +|xargs -i
find -type f -name "*.sh" | xargs -i cp {} /tmp

主要使用了xargs的 -i 参数 配合使用{} 完成要求

  • 方法3:find -exec
find -type f -name "*.sh" -exec cp {} /tmp \;

使用了find 的 -exec参数 也是通过使用{} 完成要求

  • 方法4: find +|xargs cp -t
find -type f -name "*.sh" | xargs cp -t /tmp

使用了cp的 -t 参数 作用:前后参数位置互换
cp -t 目的地 来源地