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>
相关推荐
对linux命令tree的简单实现,遍历指定文件夹下的所有文件
在Linux操作系统中,遍历目录是一项基础且至关重要的任务,尤其对于系统管理员和开发者来说,了解如何有效地遍历和操作文件系统是必备技能。Linux是一个类UNIX系统,其文件系统结构遵循一种层次化的树状模型,从根...
### 五、递归遍历详解 1. **函数定义**: ```bash function getdir() { # 函数体... } ``` `getdir`函数接收一个参数,即需要遍历的目录路径。 2. **内部循环**: ```bash for file in "$1"/* do # 循环体...
### Shell脚本遍历目录并批量修改文件编码 在IT领域中,特别是在处理跨平台文件时,经常会遇到编码格式不一致的问题。例如,从Windows环境移植到Linux环境时,文件编码可能需要从GBK转换为UTF-8。通过编写Shell脚本...
通过这次实验,我们获得了丰富的知识点,包括 Linux 文件目录遍历的实现方式、ls 命令的选项、文件信息输出、递归遍历目录、选项结构体、getOpt 函数、vi 编辑工具、Linux 库函数和系统调用、Shell 文件通配符和文件...
在Linux或Unix环境中,shell脚本如bash可以使用`for`循环配合`ls`命令或者`find`命令来遍历目录。例如,`find /path/to/directory -type f`会列出指定目录下的所有文件,而`find /path/to/directory -type d`则列出...
# 定义一个名为read_dir的函数,用于递归遍历目录 function read_dir() { for file in `ls $1` do # 检查当前元素是否为目录 if [ -d $1"/"$file ] then # 如果是目录,递归调用read_dir函数 read_dir $1"/"$...
在C实现中,这通常涉及到调用`opendir()`函数打开目录,然后使用`readdir()`遍历目录内容,将结果输出到终端。同时,可以添加选项如"-l"(长格式)来显示详细信息,这需要结合`stat()`函数获取文件属性。 2. **rm...
Shell脚本是一种强大的工具,它允许我们自动化Linux或Unix系统中的文件处理任务。在这个案例中,我们将看到如何通过递归方法遍历文件夹结构,以及如何根据文件名的特定部分进行统计分析。 首先,我们创建一个名为`...
PHP脚本提供了一个灵活的方法来遍历目录并计算每个文件的MD5值。脚本中的`get_file_md5()`函数是一个递归函数,它首先获取指定路径下的所有文件和子目录,然后对每个非`.`和`..`的文件或目录进行处理。如果遇到子...
这一步骤为后续遍历目录中的文件奠定了基础。 ##### 2. 遍历文件与条件判断 脚本通过 `for file in $direc/*` 开始循环遍历当前目录下的所有文件。其中的 `*` 是一个通配符,表示匹配任何字符序列。随后,通过 `if...
在给定的标题和描述中,主要涉及的是如何使用Shell脚本来递归地输出一个目录及其子目录中的所有文件名和目录名。递归在计算机科学中是一种重要的算法,它允许程序自我调用来解决复杂的问题,例如遍历文件系统结构。 ...
// 对每个文件或子目录进行操作,如检查文件类型或递归遍历子目录 if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { TraverseDirectory(std::string(dirPath) + "\\" + data.cFileName); } } } while...
1. 遍历指定目录或递归遍历所有子目录,查找所有.zip文件。 2. 使用`unzip`命令提取压缩包中的指定文件到临时目录。 3. 替换临时目录中的目标文件。 4. 使用`zip`命令重新压缩修改后的文件,覆盖原有的.zip文件。 `...
例如,Python的`os`模块提供了`os.walk()`函数,可以遍历目录树。 总的来说,理解Unix递归访问对于任何在Unix/Linux环境中工作的人来说都是至关重要的技能。它不仅帮助你更有效地管理文件和目录,还为自动化任务和...