复制
收藏
提问
全网
shell脚本,文件夹为1,2,3,4,遍历每个文件夹
4个月前
理解问题shell脚本,文件夹为1,2,3,4,遍历每个文件夹
已完成理解「shell脚本,文件夹为1,2,3,4,遍历每个文件夹」
展开阅读网页
在Shell脚本中遍历文件夹及其子文件夹,可以使用多种方法。以下是一些常见的方法,用于遍历名为1, 2, 3, 4的文件夹,并执行相应的操作。
使用for
循环结合if
语句
可以使用for
循环结合if
语句来判断是文件还是目录,并进行相应的操作。例如,以下脚本遍历当前目录下的所有文件夹,并打印出是文件还是目录:
for file in 1 2 3 4; do
if [ -d "$file" ]; then
echo "$file 是目录"
elif [ -f "$file" ]; then
echo "$file 是文件"
fi
done
使用find
命令
find
命令是一个强大的工具,可以递归地遍历目录树并执行指定的操作。例如,以下脚本使用find
命令遍历指定目录下的所有文件和目录:
directory="/path/to/directory" # 指定要遍历的目录路径
find "$directory" -type f -print # 打印所有文件
find "$directory" -type d -print # 打印所有目录
使用函数和ls
命令
可以定义一个函数来遍历指定目录下的所有文件和子目录。例如,以下脚本定义了一个read_dir
函数,使用ls
命令和for
循环来遍历目录:
#!/bin/bash
read_dir() {
for file in "$1"/*; do
if [ -d "$file" ]; then
echo "$file 是目录"
read_dir "$file" # 递归调用函数遍历子目录
elif [ -f "$file" ]; then
echo "$file 是文件"
fi
done
}
# 调用函数遍历指定目录
read_dir "/path/to/directory"
递归遍历文件夹及其子文件夹
如果需要递归遍历文件夹及其所有子文件夹,可以使用以下脚本:
#!/bin/bash
dir="/root/test" # 要遍历的目录
# 递归遍历文件夹及其子文件夹内所有文件,并查看各个文件大小
for file in "$dir"/**/*; do
if [ -f "$file" ]; then
echo "文件:$file 大小:$(du -sh "$file")"
fi
done
更专业一些
转笔记
专业
shell脚本,文件夹为1,2,3,4,遍历每个文件夹不在提醒