有时候用户需要对于文件夹下所有文件求shasum校验码,方便校验和比对文件版本,或者查看文件是否被修改,而一个个求校验码又很麻烦,我们可以编写一段shell脚本自动执行:
给定输入的路径名,递归进行路径下所有文件的shasum计算 ,最后将所有文件的shasum输出,
路径名可以在运行的时候由用户指定:
#!/bin/bash
# Check if input directory is provided
if [ -z "$1" ]; then
echo "Usage: $0 <directory>"
exit 1
fi
# Check if input directory exists
if [ ! -d "$1" ]; then
echo "Directory $1 does not exist"
exit 1
fi
# Recursively calculate shasum for all files in the directory
shasum_recursive() {
for file in "$1"/*; do
if [ -d "$file" ]; then
shasum_recursive "$file"
elif [ -f "$file" ]; then
shasum=$(shasum "$file")
echo "$shasum"
fi
done
}
shasum_recursive "$1"
将以上代码保存为一个shell脚本文件(比如calculate_shasum.sh),然后运行以下命令:
chmod +x calculate_shasum.sh
./calculate_shasum.sh /path/to/directory
注意替换/path/to/directory
为想要计算shasum的目录路径。现在,用户可以在运行脚本时指定路径名。