📅  最后修改于: 2023-12-03 15:13:37.476000             🧑  作者: Mango
在Shell脚本中,循环遍历目录中的文件是经常使用的操作。在Bash中,可以使用for循环来遍历目录中的文件。
以下是一个示例脚本,它将遍历指定目录中的所有文件,并输出每个文件的名称和大小。
#!/bin/bash
dir=/path/to/dir
for file in "$dir"/*; do
if [[ -f "$file" ]]; then
echo "File Name: $file"
echo "File Size: $(du -h "$file" | cut -f1)"
fi
done
在这个脚本中,我们使用了一个for循环来遍历指定目录($dir
)中的所有文件。
循环的变量是$file
,它将遍历目录中的每个文件。
我们还添加了一个条件语句来检查每个文件是否是一个普通的文件。如果是,则输出文件名和大小。
for file in "$dir"/*; do
:这是for循环的语法。变量file将遍历目录中的所有文件。"$dir/*"
表示遍历目录中的所有文件。需要注意的是,如果目录中没有文件,则"$dir/*"
将被解释为字符串"$dir/*"
,因此您需要使用一个条件语句来检查每个文件是否是一个普通的文件。if [[ -f "$file" ]]; then
:这是一个条件语句,它将检查每个文件是否是一个普通的文件。-f
选项告诉[[...]]
测试是否为普通文件。如果是,则执行条件语句中的命令。echo "File Name: $file"
:这将输出遍历的每个文件的名称。echo "File Size: $(du -h "$file" | cut -f1)"
:这将输出遍历的每个文件的大小。我们使用du
命令来获取文件大小,并使用cut
命令来提取第一个字段。-h
选项告诉du
使用人类可读格式来显示文件大小。使用Bash循环遍历目录中的文件是Shell脚本开发中的一个重要技能。在这篇文章中,我们展示了一个示例脚本,它遍历指定目录中的所有文件,并输出每个文件的名称和大小。您可以根据您的需要修改和定制此示例脚本。