阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

198次阅读
没有评论

共计 773 个字符,预计需要花费 2 分钟才能阅读完成。




最近博客进行了搬家,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 遍历目录及其子目录中的所有文件方法

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计773字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中