分两个步骤
步骤1、列举出文件夹(包括子文件夹)下所有文件
两种方法:
1)ls -R 递归列出文件,这个最简单,推荐使用
2) find $PWD | xargs ls -d
步骤2、 使用grep根据关键字筛选出想要的文件
ls -R | grep .bag$ ($表示行尾搜索,即.bag是每行中最后的字符)
find $PWD | xargs ls -d | grep .bag$
2019.12.3日更新:
直接使用 find $PWD | grep .bag$就可以了,会列出路径全名。
ps:
1、 这两条命令今天晚上才知道。。之前自己遇到的最大问题就是不知道如何快速获得一个文件夹下(含子文件)所有的文件,为此还专门搜到了一个函数,实在是太naive了。(下面就是搜到的函数)
#! /bin/bash
function read_dir(){
for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
do
if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
then
read_dir $1"/"$file
else
echo $1"/"$file #在此处处理文件即可
fi
done
}
#读取第一个参数
read_dir $1
2、 grep真香