我的编程空间,编程开发者的网络收藏夹
学习永远不晚

shell脚本for循环实现文件和目录遍历

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

shell脚本for循环实现文件和目录遍历

一个for循环实现一个目录下的文件和目录遍历,很实用


[root@localhost shell_order]# cat test27.sh 
#!/bin/bash
#print the directory and file
 
for file in /home/hustyangju/*
do
if [ -d "$file" ]
then 
  echo "$file is directory"
elif [ -f "$file" ]
then
  echo "$file is file"
fi
done
[root@localhost shell_order]# ./test27.sh 
/home/hustyangju/array is directory
/home/hustyangju/menuwindow-7.12 is directory
/home/hustyangju/menuwindow-build-desktop is directory
/home/hustyangju/shell_order is directory
[root@localhost shell_order]# 

递归遍历


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

补充:Shell遍历目标目录和子目录下的所有文件

1.编写代码


#!/bin/bash
 
function getdir(){
    for element in `ls $fd`
    do  
        dir_or_file=$fd"/"$element
        if [ -d $dir_or_file ]
        then 
            getdir $dir_or_file
        else
            echo $dir_or_file
        fi  
    done
}
root_dir="/opt/datas"
getdir $root_dir

2.参数

  • -e 判断对象是否存在
  • -d 判断对象是否存在,并且为目录
  • -f 判断对象是否存在,并且为常规文件
  • -L 判断对象是否存在,并且为符号链接
  • -h 判断对象是否存在,并且为软链接
  • -s 判断对象是否存在,并且长度不为0
  • -r 判断对象是否存在,并且可读
  • nSpwrlOQs
  • -w 判断对象是否存在,并且可写
  • -x 判断对象是否存在,并且可执行
  • -O 判断对象是否存在,并且属于当前用户
  • -G 判断对象是否存在,并且属于当前用户组
  • -nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]
  • -ot 判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2" ]

3.测试

测试结果:打印出来了目标目录以及子目录下的所有文件

shell脚本for循环实现文件和目录遍历

到此这篇关于shell脚本for循环实现文件和目录遍历的文章就介绍到这了,更多相关shell文件和目录遍历内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

shell脚本for循环实现文件和目录遍历

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

shell脚本for循环实现文件和目录遍历

一个for循环实现一个目录下的文件和目录遍历,很实用[root@localhost shell_order]# cat test27.sh #!/bin/bash #print the directory and filefor file
2022-06-04

Shell脚本遍历目录并批量修改文件编码

在将windows上的jsp网页移植到linux环境中时,发现一个个的转换编码及修改默认编码类型太慢,写此脚本进行尝试文件遍历~ 好久不写,手生了。#!/bin/bash##SPATH="/root/chengji/WebRoot"DPAT
2022-06-04

怎么用Shell脚本遍历目录并批量修改文件

本篇内容主要讲解“怎么用Shell脚本遍历目录并批量修改文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Shell脚本遍历目录并批量修改文件”吧!在将windows上的jsp网页移植到l
2023-06-09

Shell脚本中使用for循环和cat命令实现按顺序合并文件

工作目录下面有mydoc1.txt,mydoc2.txt...mydoc41.txt,本来想用sed排列依次取值排序,然后用cat来合并这些文件,发现达不到预期效果,合并令如下所示:ls -lF *.txt | sed -n '/mydo
2022-06-04

怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文件

本篇内容主要讲解“怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文
2023-06-09

使用VBS脚本怎么实现遍历批量替换多目录多文件内容

使用VBS脚本怎么实现遍历批量替换多目录多文件内容?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Set WshShell = CreateObject("Wscript.She
2023-06-08

如何实现批量转换目录下文件编码的shell脚本

这篇文章将为大家详细讲解有关如何实现批量转换目录下文件编码的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一例批量转换目录下文件编码的shell脚本代码。需求描述:由于从window转lin
2023-06-09

如何实现在指定目录查找指定后缀文件的shell脚本代码

这篇文章将为大家详细讲解有关如何实现在指定目录查找指定后缀文件的shell脚本代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:#!bin/sh # 在指定位置查找指定后缀的文件,包括子目录
2023-06-09

如何实现查找目录下同名但不同后缀名文件的shell脚本代码

这篇文章主要介绍如何实现查找目录下同名但不同后缀名文件的shell脚本代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!因为后台录入的同事,上传文件的时候,给文件取了相同的名字,但不同的后缀名,由于文件路径非常深,大
2023-06-09

编程热搜

目录