shell递归输出文件名和目录名的方法

最近遇到一个问题,输出指定目录下的所有子目录以及所有文件名

简单写了个shell脚本实现

function echo_name(){
 for file in `ls $1`
 do
  echo $1"/"$file
  if [ -d $1"/"$file ]
  then
   echo_name $1"/"$file
  fi
 done
} 

echo_name $1 

运行 sh test.sh script

运行结果

以上这篇shell递归输出文件名和目录名的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • shell 递归遍历目录下的所有文件并统一改名的方法

    遇到一道题目,如何把某个目录下的每个文件统一在名字前加上"abc",用shell实现 首先分析,一个目录下除了文件,还可能存在目录,这里可以看出需要有递归操作,如果是文件直接改名,目录则进入然后进行遍历 如何实现遍历?我们写一个函数: function travFolder(){ #echo "travFolder" flist=`ls $1` cd $1 #echo $flist for f in $flist do if test -d $f then #ech

  • shell获取目录下所有文件夹的名称并输出的实例

    获取指定目录/usr/下所有文件夹的名称并输出: shell代码: #!/bin/bash #方法一 dir=$(ls -l /usr/ |awk '/^d/ {print $NF}') for i in $dir do echo $i done ####### #方法二 for dir in $(ls /usr/) do [ -d $dir ] && echo $dir done ##方法三 ls -l /usr/ |awk '/^d/ {print $NF}' ## 其实同方法一,直接

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

    在将windows上的jsp网页移植到linux环境中时,发现一个个的转换编码及修改默认编码类型太慢,写此脚本进行尝试文件遍历~ 好久不写,手生了. 复制代码 代码如下: #!/bin/bash # # SPATH="/root/chengji/WebRoot" DPATH="/web" # 函数开始部分 CYCLING(){   filelist=`ls -1 $SPATH` for filename in $filelist ; do if [ -f $file

  • linux Shell获取某目录下所有文件夹的名称

    查看目录下面的所有文件: #!/bin/bash cd /目标目录 for file in $(ls *) do echo $file done 延伸的方法,查看目录下面的所有目录 #!/bin/bash cd /export/bak/original_document for dir in $(ls split*) do [ -d $dir ] && echo $dir #先判断是否是目录,然后再输出 done

  • 详解shell 遍历文件夹内所有文件并打印绝对路径

    例如你有一个文件夹路径是 /wls,如果想要遍历这个文件夹内的所有文件,并将它们保存到数组中,利用shell你可以这样做 for file in /wls/* do if test -f $file then arr=(${arr[*]} $file) fi done echo ${arr[@]} 这样就可以遍历wls文件夹下的所有文件并把它们的绝对路径存在arr这个数组中,但这还是不够的,因为文件夹中可能会有多个子文件夹,如果只过滤文件会遗漏掉子文件夹中的文件,所以需要扩展上面的方法,如果我们

  • shell脚本递归遍历目录及子目录的例子分享

    用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名. 实例1: 复制代码 代码如下: #!/bin/sh function scandir() {    local cur_dir parent_dir workdir    workdir=$1    cd ${workdir}    if [ ${workdir} = "/" ]    then        cur_dir=""    else        cur_dir=$(p

  • 利用shell脚本遍历文件夹内所有的文件并作整理统计的方法

    环境: Ubuntu下采用shell脚本实现 案例简述: 文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为数字,则根据数字的大小统计该文件夹内文件在各个数据段的数量. 1.这里写一个函数,实现对文件夹内所有文件名的读取,采用的方法是递归! #!/bin/bash #folder="./test" function readfile () { #这里`为esc下面的按键符号 for file

  • shell递归输出文件名和目录名的方法

    最近遇到一个问题,输出指定目录下的所有子目录以及所有文件名 简单写了个shell脚本实现 function echo_name(){ for file in `ls $1` do echo $1"/"$file if [ -d $1"/"$file ] then echo_name $1"/"$file fi done } echo_name $1 运行 sh test.sh script 运行结果 以上这篇shell递归输出文件名和目录名的方法

  • Linux shell 提取文件名和目录名的方法

    ${} [root@node01 ~]# file=/dir1/dir2/dir3/my.file.txt [root@node01 ~]# echo ${file#*/} dir1/dir2/dir3/my.file.txt 删掉第一个 / 及其左边的字符串 [root@node01 ~]# echo ${file##*/} my.file.txt 删掉最后一个 /  及其左边的字符串 [root@node01 ~]# echo ${file#*.} file.txt 删掉第一个 .  及其左

  • Python遍历目录并批量更换文件名和目录名的方法

    本文实例讲述了Python遍历目录并批量更换文件名和目录名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2014-03-07 #summary: 深度遍历指定目录,并将子目录和文件名改为小写 #注意,此程序只针对windows,windows下文件(夹)名不区分大小写 import os import os.path import shutil #读入指定目录并转换为绝对路径 rootdir = raw_input('ro

  • Linux shell 之 提取文件名和目录名的一些方法总结

    很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等. 下面介绍两种常用的方法来进行相关的操作. 一.使用${} 1.${var##*/} 该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边

  • shell script获取文件名或者目录名称的方法

    目录 引言 basename dirname shell script 了解更多 引言 个别时候需要将当前文件(文件自己)拷贝到一个固定的目录(项目组都熟悉的目录)下面,可以使用 shell 脚本来实现此功能,比较简单. 可以首先通过两个小的例子来了解下面两个命令: basename 命令描述:打印 NAME 并删除任何前导目录组件. 如果指定,还删除尾随 SUFFIX 还是通过例子来看看会更加清晰一些: [root@localhost ~]# basename /usr/bin/sort so

  • linux c程序中获取shell脚本输出的实现方法

    1. 前言Unix界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部命令ping后,如果执行失败,我们希望得到p

  • shell去掉文件中空行(空白行)的方法详解

    本文详细介绍了使用shell去除文件中的空行的方法,学习下sed.awk.shell文件检测的方法,有需要的朋友可以作个参考. 本节内容:shell去掉文件中空行 1,shell 去掉文件中的空行 复制代码 代码如下: cat filename | sed -e '/^$/d' > filename 2,保留最新的9个文件,其它的文件删除的命令语句 复制代码 代码如下: ls -t | awk '{if(NR>9){print $0}}' |xargs rm -f 附,shell中的特殊变量

  • shell脚本实现服务器进程监控的方法

    写作背景: 项目是基于java.weblogic及timer的处理模式,每次服务部署之后timer的整体状态是一个盲区,因为100多个进程,是否有启动遗漏或者启动重复的,想做到一目了然是件困难的事情.所以我考虑用shell脚本的文件查找与匹配方法来解决这个问题,简单记录下,仅供参考. 程序说明: 1)通过将系统定义的进程(timer)配置到配置文件process_signal.config中 2)将服务器当前所有的java进程存储到process_current.txt中 3)逐行读取proce

  • shell 使用数组作为函数参数的方法(详解)

    因工作需要,需要使用shell开发一些小工具,当使用数组作为函数参数时,发现只能传递数组的第一个元素,数组后面的元素不能传递到函数内. #!/bin/bash function showArr(){ arr=$1 for i in ${arr[*]}; do echo $i done } regions=("GZ" "SH" "BJ") showArr $regions exit 0 把代码保存为test.sh后执行,只输出了第一个元素. ./t

随机推荐