黑帽联盟

标题: Shell遍历文件夹下所有文件 [打印本页]

作者: 定位    时间: 2023-10-20 22:45
标题: Shell遍历文件夹下所有文件
一、Shell遍历文件夹所有文件
  1. #!/bin/bash
  2. for file in `ls /path/to/folder`
  3. do
  4.     echo $file
  5. done
复制代码
该脚本使用for循环遍历文件夹下所有文件,并使用echo命令输出文件名。其中,/path/to/folder为要遍历的文件夹路径。

与for语句配合使用的通配符有:

二、Shell循环遍历文件夹
  1. #!/bin/bash
  2. for folder in `ls -l /path/to/folder | grep "^d" | awk '{print $NF}'`
  3. do
  4.     echo $folder
  5. done
复制代码
该脚本使用for循环遍历文件夹,并筛选出文件夹,并使用echo命令输出文件夹名。其中,/path/to/folder为要遍历的文件夹路径。

该脚本中使用了管道符和awk命令,其中,ls -l /path/to/folder是列出文件夹的详细信息,grep "^d"是从中筛选出开头为d的行,即文件夹,awk '{print $NF}'是输出每行的最后一列,即文件夹名。


三、Shell读取文件夹下所有文件
  1. #!/bin/bash
  2. files=`ls /path/to/folder`
  3. for file in $files
  4. do
  5.     content=`cat $file`
  6.     echo "File: $file"
  7.     echo "Content: $content"
  8. done
复制代码
该脚本使用ls命令读取文件夹下所有文件,在for循环中读取文件内容并输出。其中,/path/to/folder为要遍历的文件夹路径。
该脚本中使用了反引号将ls命令的输出结果赋值给files变量,并使用cat命令获取文件内容,输出文件名与内容。


四、Shell脚本遍历文件夹
  1. #!/bin/bash
  2. folder="/path/to/folder"
  3. function list_files(){
  4.     for file in `ls $1`
  5.     do
  6.         if [ -d $1"/"$file ]
  7.         then
  8.             list_files $1"/"$file
  9.         else
  10.             echo $1"/"$file
  11.         fi
  12.     done
  13. }
  14. list_files $folder
复制代码
该脚本使用自定义函数递归遍历文件夹下所有文件,并使用echo命令输出文件路径。其中,/path/to/folder为要遍历的文件夹路径。
在该脚本中,使用if语句判断是否为文件夹,如果是则递归调用list_files函数,否则输出文件路径。


五、Shell遍历文件夹并提取文件名字
  1. #!/bin/bash
  2. folder="/path/to/folder"
  3. files=`ls $folder`
  4. for file in $files
  5. do
  6.     filename=`basename $file`
  7.     echo "Filename: $filename"
  8. done
复制代码
该脚本使用ls命令读取文件夹下所有文件,在for循环中使用basename命令提取文件名并输出。其中,/path/to/folder为要遍历的文件夹路径。
basename命令可以从文件路径中提取出文件名。


六、Shell递归遍历文件夹
  1. #!/bin/bash
  2. folder="/path/to/folder"
  3. for file in `find $folder -type f`
  4. do
  5.     echo "File: $file"
  6. done
复制代码
该脚本使用find命令递归遍历文件夹下所有文件,并使用echo命令输出文件路径。其中,/path/to/folder为要遍历的文件夹路径。
find命令是一种非常灵活的查找文件的工具,可以根据各种条件查找文件。

七、Shell文件夹下所有文件循环
  1. #!/bin/bash
  2. folder="/path/to/folder"
  3. cd $folder
  4. for file in *
  5. do
  6.     echo "File: $file"
  7. done
复制代码
该脚本使用cd命令进入文件夹,使用for循环遍历文件夹下所有文件并输出文件名。其中,/path/to/folder为要遍历的文件夹路径。
在for循环中,*通配符表示匹配所有的文件和文件夹。


八、Linux Shell遍历文件夹
  1. #!/bin/bash
  2. folder="/path/to/folder"
  3. for file in $(ls $folder)
  4. do
  5.     echo "File: $folder/$file"
  6. done
复制代码
该脚本使用ls命令读取文件夹下所有文件,在for循环中输出文件路径。其中,/path/to/folder为要遍历的文件夹路径。
在for循环中,$(ls $folder)表示将ls命令的输出结果作为for循环的参数。


九、Shell脚本遍历文件夹并删除文件
  1. #!/bin/bash
  2. folder="/path/to/folder"
  3. for file in `find $folder -type f`
  4. do
  5.     rm -f $file
  6. done
复制代码
该脚本使用find命令递归遍历文件夹下所有文件,并使用rm命令删除文件。其中,/path/to/folder为要遍历的文件夹路径。
在for循环中,`find $folder -type f`表示返回所有的文件路径,-type参数指定只返回普通文件。







欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5