精华内容
下载资源
问答
  • Linux shell递归遍历目录 Linux上可以通过如下shell脚本遍历指定目录: #!/bin/bash function list_file() { local last_dir=$(pwd) if [[ $# -ne 1 ]]; then echo "usage `basename $0` <...

    Linux shell递归遍历目录

    Linux上可以通过如下shell脚本遍历指定目录:

    #!/bin/bash
    
    function list_file()
    {
        local last_dir=$(pwd)
        if [[ $# -ne 1 ]]; then
            echo "usage `basename $0` <directory> "
        fi
        
        cd $1
        for tmpfile in $(ls)
        do
            if [ -d $tmpfile ]; then
                echo "directory: $tmpfile"		
                list_file $tmpfile
            else
                echo "file: $tmpfile"
            fi
        done
        cd $last_dir
    }
    
    if [[ $# -ne 1 ]]; then
        echo "usage `basename $0` <directory> "
        exit
    fi
    
    list_file $1

    执行效果如下:

    yuxuecheng@linux:~/shellSource> ls -AlR ../bin/
    ../bin/:
    total 32
    -rwxr-xr-x 1 yuxuecheng users  277 Mar 19  2015 mklink.sh
    -rwxr-xr-x 1 yuxuecheng users 5001 Mar 19  2015 modify_ini.sh
    drwxr-xr-x 3 yuxuecheng users 4096 Mar 19  2015 test
    -rw-r--r-- 1 yuxuecheng users   72 Mar 19  2015 test.ini
    -rw-r--r-- 1 yuxuecheng users    0 Mar 18  2015 test.txt
    -rwxr-xr-x 1 yuxuecheng users  686 Mar 19  2015 unlink_symbol.sh
    -rwxr--r-- 1 root       root   902 Feb 28  2015 vm_init_para.ini
    -rw-r--r-- 1 yuxuecheng users  922 Mar 19  2015 vm_init_para.ini.temp
    
    ../bin/test:
    total 4
    drwxr-xr-x 2 yuxuecheng users 4096 Mar 19  2015 test2
    
    ../bin/test/test2:
    total 0
    yuxuecheng@linux:~/shellSource> ./list_file.sh ../bin/
    file: mklink.sh
    file: modify_ini.sh
    directory: test
    directory: test2
    file: test.ini
    file: test.txt
    file: unlink_symbol.sh
    file: vm_init_para.ini
    file: vm_init_para.ini.temp
    yuxuecheng@linux:~/shellSource> 

     

    展开全文
  • linuxshell递归遍历文件夹的实现

    千次阅读 2017-03-06 21:07:55
    实现思路就是深度优先搜索的实现思路,不过第一次在Linux下写脚本,还需要适应。比如if语句的中括号两边一定要留空格之类的。 function dfs { local now_dir now_file now_dir=$1 for now_file in $(ls ${now_...

    实现思路就是深度优先搜索的实现思路,不过第一次在Linux下写脚本,还需要适应。比如if语句的中括号两边一定要留空格之类的。

    function dfs
    {
     local now_dir now_file
     now_dir=$1
     for now_file in $(ls ${now_dir})
     do
      if [ -f $now_file ]
      then
       echo $now_file
      fi
     done
     for now_file in $(ls ${now_dir})
     do
      if [ -d $now_file ]
      then
      cd ${now_file}
      dfs ${now_dir}/${now_file}
      cd ..
      fi
     done
    }
    
    if [ -f $1 ]
    then
     echo "the input is a file"
    else
     dfs $1
    fi


    搜索结果如下:



    展开全文
  • 遍历linux某目录下的所有文件#!/bin/bash# $1是运行脚本时,输入的第一个参数,这里指的是使用者希望搜索的目录# 下面的代码是对目录进行判断,如果为空则使用脚本所在的目录;否则,搜索用户输入的目录if [[ -z "$1...

    遍历linux某目录下的所有文件

    #!/bin/bash

    # $1是运行脚本时,输入的第一个参数,这里指的是使用者希望搜索的目录

    # 下面的代码是对目录进行判断,如果为空则使用脚本所在的目录;否则,搜索用户输入的目录

    if [[ -z "$1" ]] || [[ ! -d "$1" ]]; then

    echo "The directory is empty or not exist!"

    echo "It will use the current directory."

    nowdir=$(pwd)

    else

    nowdir=$(cd $1; pwd)

    fi

    echo "$nowdir"

    # 递归函数的实现

    function SearchCfile()

    {

    cd $1

    #这里可以修改为判断文件类型,如.c,.java等等文件类型,修改一下grep条件就可以了

    cfilelist=$(ls -l | grep "^-" | awk '{print $9}')

    for cfilename in $cfilelist

    do

    echo $cfilename

    done

    # 遍历当前目录,当判断其为目录时,则进入该目录递归调用该函数;

    dirlist=$(ls)

    for dirname in $dirlist

    do

    if [[ -d "$dirname" ]];then

    cd $dirname

    #SearchCfile 这里有bug,跳转到根目录了

    #这里把当前的目录作为参数输入

    SearchCfile $(pwd)

    cd ..

    fi;

    done;

    }

    # 调用上述递归调用函数

    SearchCfile $nowdir

    展开全文
  • 遍历linux某目录下的所有文件 #!/bin/bash # $1是运行脚本时,输入的第一个参数,这里指的是使用者希望搜索的目录 # 下面的代码是对目录进行判断,如果为空则使用脚本所在的目录;否则,搜索用户输入的目录 if...

    遍历linux某目录下的所有文件

    #!/bin/bash
    
    # $1是运行脚本时,输入的第一个参数,这里指的是使用者希望搜索的目录
    # 下面的代码是对目录进行判断,如果为空则使用脚本所在的目录;否则,搜索用户输入的目录
    if [[ -z "$1" ]] || [[ ! -d "$1" ]]; then
        echo "The directory is empty or not exist!"
        echo "It will use the current directory."
        nowdir=$(pwd)
    else
        nowdir=$(cd $1; pwd)
    fi
    echo "$nowdir"
    
    # 递归函数的实现
    function SearchCfile()
    {
        cd $1
        #这里可以修改为判断文件类型,如.c,.java等等文件类型,修改一下grep条件就可以了
        cfilelist=$(ls -l | grep "^-" | awk '{print $9}')
        for cfilename in $cfilelist
        do
            echo $cfilename
        done
    # 遍历当前目录,当判断其为目录时,则进入该目录递归调用该函数;
        dirlist=$(ls)
        for dirname in $dirlist      
        do
            if [[ -d "$dirname" ]];then
                cd $dirname
                #SearchCfile 这里有bug,跳转到根目录了
                #这里把当前的目录作为参数输入
                SearchCfile $(pwd)
                cd ..
            fi;
        done;
    }
    
    # 调用上述递归调用函数
    SearchCfile $nowdir

     

    展开全文
  • 无图/无目录/格式错误/... 非递归遍历输出文件类型 将上面的递归调用代码删去即可。 即22行至25行。 参考文献 Emperor_Dandy: 使用Shell遍历目录及其子目录中的所有文件方法,https://www.jb51.net/article/142325.htm
  • 今天早上在地铁上看了关于文件和文件夹的一章,正好最近刚搞懂linux的文件系统,觉得对文件属性的访问跟Shell命令很像,所以想晚上来实践一下。 发现php的文件夹函数好像没有提供遍历文件夹下的所有文件(包括子目录...
  • 主要是显示输入的路径下所有的文件,采用的是递归方式访问文件夹下所有文件。 二、脚本内容说明 1、Shell脚本文件名称为showfile.sh 2、showfile.sh的内容如下 #!/usr/bin/ksh #此函数用于循环输出目录文件...
  • PHP递归遍历指定文件夹内的文件

    千次阅读 2016-03-28 23:29:16
    今天早上在地铁上看了关于文件和文件夹的一章,正好最近刚搞懂linux的文件系统,觉得对文件属性的访问跟Shell命令很像,所以想晚上来实践一下。 发现php的文件夹函数好像没有提供遍历文件夹下的所有文件(包括子...
  • # 参数1表示文件目录,参数2表示是否递归,0代表不递归,1表示递归,默认递归模式 function listAllFiles() {  _FILE_DIR=$1 #文件目录  _RECURSIVE_MODE=$2 #1表示递归,0表示不递归  #传入的目录...
  • Linux-C 遍历目录,复制目录

    千次阅读 2018-08-18 14:38:39
    记--递归方法遍历目录,复制目录,也可以利用强大的shell命令获取目录下指定格式的文件。 二、遍历目录例子 1、递归方法 测试代码 #include <stdio.h> #include <sys/types.h> #include <sys...
  • Linux下用shell遍历目录

    千次阅读 2006-12-20 15:18:00
    /bin/sh# 定义一个方法foreachd(){# 遍历参数1for file in $1/*do# 如果是目录就打印处理,然后继续遍历递归调用 if [ -d $file ] then echo $file foreachd $file fidone}# 执行,如果有参数就遍历指定的目
  • linux递归读取文件

    2016-04-26 23:07:36
    shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名。 实例1: 复制代码 代码如下:!/bin/shfunction scandir() { local cur_dir parent_dir workdir workdir=1cd1 cd {workdir
  • 首先分析,一个目录下除了文件,还可能存在目录,这里可以看出需要有递归操作,如果是文件直接改名,目录则进入然后进行遍历 如何实现遍历?我们写一个函数: function travFolder(){ #echo "travFolder start" ...
  • Linuxshell数组操作 认识 shell 数组shell 程序递归遍历文件夹 认识 shell 数组 创建 shell 脚本 vim moli.sh 程序内容如下: #!/bin/bash my_array=(A B "C" D) echo "第一个元素为: ${my_array[0]}" ...
  • 12文件夹 代表12月份 1-12每个文件夹下有01-31(代表日期,按月份天数)文件夹,具体数据文件在日期文件夹中,需要按此目录结构以日期为单位解压(2017/01/01.tar.gz),循环遍历文件夹然后压缩,并放入指定目录,...
  • 1.从web下载(wget) wget url1 url2 url3 wget -t 5:重试次数,-t 0为一直重试 ...--mirror --convert-links:递归遍历url并逐个下载 –user ian --password ian:传入用户名密码 2.下载纯文本文件 lynx -dump ur...
  • grep perl -R /root/shell/ 使用-R进行递归遍历搜索
  • 一个目录中很多有很多文件(或者文件夹),需要遍历文件夹对文件进行操作,怎么办尼? 当然是用shell写批处理脚本辣, 参考脚本 【1】递归打印文件名称 切记穿入参数是绝对路径就会输出绝对路径,穿入参数是相对路径...
  • Linux命令行与shell脚本编程大全(第2版)

    千次下载 热门讨论 2014-02-20 13:51:01
    第1章 初识Linux shell 1.1 什么是Linux 1.1.1 深入探究Linux内核 1.1.2 GNU工具链 1.1.3 Linux桌面环境 1.2 Linux发行版 1.2.1 核心Linux发行版 1.2.2 专业Linux发行版 1.2.3 Linux LiveCD 1.3 小结 第2...
  • 今天需要测试一下OJ产生的数据,文件太多,所以需要通过文件递归遍历调用shell命令,所以网上找了递归访问的,比之前window下的程序更简单清爽。 借鉴:http://www.cnblogs.com/xudong-bupt/p/3504442.html Linux ...
  • Linux删除指定后缀名的文件

    万次阅读 2013-10-20 11:53:57
    1,删除当前目录下以.txt结尾的文件: find -name "*.txt" -exec rm -f '{}' \;...2,默认情况下find会搜索子目录下的文件,使用maxdepth选项使find不递归遍历子目录: find -maxdepth 1 -name "*.txt" -print
  • SHELL | find命令

    2020-11-19 14:13:53
    linux中一切皆文件,里面有大量的文件,我们需要在成千上万个文件找到那些我们需要的文件!!!!这时就需要用到查找命令了,find命令比locate命令的功能要齐全而且要好用的多,所以博主只在这里接受find命令的...
  • 模拟练习01

    2020-02-12 16:08:40
    1.Linux下默认的shell是bash 2.inline是内联函数,适用于代码少,频繁调用的代码 3.静态成员是该类对象所共有的 4.顺序表长度为n,最坏情况下,比较次数小于n的方法:寻找最大项 5.多态性分为两类:编译多态性和运行...
  • 业day19up 深度遍历与广度遍历正则表达式小结最简单递归递归顺序递归求和递归腾讯台阶面试题文件夹的函数遍历文件夹遍历文件夹有层次感栈模拟递归栈模拟递归遍历文件夹栈模拟递归遍历文件夹层次感普及网站提取概念栈...
  • 英特尔面试专项准备

    2020-12-09 13:46:46
    和广度优先遍历递归算法的实现 </li><li> 数据结构的理解,内核中用到那些比较牛的数据结构,然后开始漫谈算法 </li><li> 多线程同步 </li><li> 多线程同步及各种方法的用途区别(三种) </li><li>关于...
  • 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    递归遍历矩阵 1个目标文件,简单! 多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

linuxshell递归遍历

linux 订阅