当前位置: 首页 > Linux运维 > 使用Shell脚本遍历子目录下所有文件的方法

使用Shell脚本遍历子目录下所有文件的方法

发布于:2020-2-18 Linux运维 4条评论 3,449 views
如需VPS代购、PHP开发、服务器运维等服务,请联系博主QQ:337003006

最近博客进行了搬家,CDN源发生改变,想着在CDN上将博客所有图片刷新预热一遍,那么问题来了,刷新预热需要得到所有图片地址,于是直接使用Shell脚本递归遍历wp-content/uploads目录先得到图片文件路径,说干咱就干。

创建Shell脚本

使用vi编辑器,先创建一个vi traveDir.sh文件,复制下面的脚本代码:

#! /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

别忘记给脚本添加执行权限chmod +x traveDir.sh

使用方法

上一个步骤已将脚本创建完毕,接下来只需要执行./traveDir.sh /xxx/wp-content/uploads即可,xxx请修改为您站点的绝对路径。如果您想要导出为.txt文本,直接使用>>流操作即可。

#导出为.txt
./traveDir.sh /xxx/wp-content >> 1.txt

后续操作

导出的文件路径可能是/data/wwwroot/xiaoz.me/wp-content/uploads//2019/11/snipaste_20191110_102750.png这个样子的,直接使用文本工具,将/data/wwwroot/xiaoz.me/批量替换为您自己的域名,然后将URL提交到CDN服务商进行刷新预热。

总结

  1. 脚本批量导出文件路径
  2. 文本工具将站点根目录批量替换为自己的域名
  3. 提交URL刷新

脚本比较简单,网上一搜一大把,此文参考了:使用Shell遍历目录及其子目录中的所有文件方法


标签:

4 条评论 “使用Shell脚本遍历子目录下所有文件的方法”

  1. Yukinoshita Yukino说道:

    find /xxx/wp-content/uploads -type -f
    中文补丁

    1. xiaoz说道:

      哈哈,感谢分享。

  2. 波克棋牌说道:

    大佬666啊,赶紧马克学习一下

  3. 这个功能有需要,备份一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注