shell脚本批量移动文件

时间:2021-03-29 08:42:47

今天在整理文件包的时候,由于冗余文件太多,大概有3660多个,但我实际需要的只有43个,怎么通过批量操作把这43个文件找出来呢?天呢,一个个的挑出来忒难为人了,索性还是使用脚本吧,自己动手,丰衣足食。

明确目标

首先,你应该知道你需要哪些文件吧,把他们整合到一个文件中,这里命名txt:

binutils-2*x86_64*
glibc-2*x86_64*
glibc-devel-2*x86_64*

准备材料

其次,你需要确定源文件夹(即含有3000多个文件的文件夹)以及目标文件夹,这里确定在同意目录下,源文件夹为packages,目标文件夹为target

mkdir target

编写脚本

编写执行脚本readline,主要功能有读取txt文件,并查找文件,复制进目标文件夹,并输出相关信息:

#!/bin/bash
# 按行读取txt文件
cat ./txt | while read line
do
echo $line
find ./packages -name $line | xargs -i cp -rf {} ./target/
done

echo "txt文件共有`cat ./txt | wc -l`行"

echo "目标文件夹target下共有`find ./target -type f -print | wc -l`个文件"

编写好脚本后,要赋予它可执行权限:

chmod 755 readline

完事~