📅  最后修改于: 2023-12-03 15:17:23.630000             🧑  作者: Mango
在 Linux 操作系统中,我们通常会需要计算某个目录(包括其所有子目录)中的文件数量、文件大小等信息。在这种情况下,可以使用 Shell-Bash 编写脚本来实现。
下面是一个简单的 Shell-Bash 脚本,可以用于统计目录中的文件数量:
#!/bin/bash
DIRECTORY="$1"
COUNT=0
if [[ ! -d "$DIRECTORY" ]]; then
echo "Error: $DIRECTORY is not a directory"
exit 1
fi
for FILE in $(find "$DIRECTORY" -type f); do
COUNT=$(( COUNT + 1 ))
done
echo "There are $COUNT files in $DIRECTORY"
如果你想计算目录的大小,可以采用类似以下的脚本:
#!/bin/bash
DIRECTORY="$1"
SIZE=0
if [[ ! -d "$DIRECTORY" ]]; then
echo "Error: $DIRECTORY is not a directory"
exit 1
fi
for FILE in $(find "$DIRECTORY" -type f); do
SIZE=$(( SIZE + $(stat -c "%s" "$FILE") ))
done
echo "Total size of $DIRECTORY is $SIZE bytes"
这个脚本会遍历目录及其子目录中的每个文件,并计算它们的大小之和。注意,我们使用了 stat
命令来获取文件的大小。
除了统计文件数量和目录大小之外,我们还可以采用其他方式来计算目录中的文件信息。例如,以下脚本可以用于按文件类型统计文件数量:
#!/bin/bash
DIRECTORY="$1"
COUNT=0
if [[ ! -d "$DIRECTORY" ]]; then
echo "Error: $DIRECTORY is not a directory"
exit 1
fi
for FILE in $(find "$DIRECTORY" -type f); do
EXT=$(echo $FILE | awk -F . '{print $NF}')
case "$EXT" in
"txt" | "md" | "sh")
COUNT=$(( COUNT + 1 ))
;;
esac
done
echo "There are $COUNT text files in $DIRECTORY"
在这个脚本中,我们根据文件扩展名来判断它是否是文本文件。如果是,就将计数器加一。
Shell-Bash 脚本是 Linux 系统中非常强大的工具,它可以帮助我们实现各种自动化任务。对于计算目录中的文件信息,我们可以使用类似上面介绍的脚本来完成。当然,这只是脚本的一部分,你可以根据自己的需要对其进行修改和扩展。