bash脚本1_完成文件夹的更新
功能: 文件夹A,文件夹B 文件夹A是文件夹B的子集。 两者的层级一致,内部都包含多个子文件夹 写一个bash脚本将文件夹B中出现在文件A中的子文件夹替换为文件夹A的子文件夹
#!/bin/bash
# 确保脚本以两个参数运行
if [ "$#" -ne 2 ]; then
echo "Usage: $0 folderA folderB"
exit 1
fi
folderA="$1"
folderB="$2"
# 检查文件夹A和文件夹B是否存在
if [ ! -d "$folderA" ]; then
echo "Error: $folderA does not exist or is not a directory."
exit 1
fi
if [ ! -d "$folderB" ]; then
echo "Error: $folderB does not exist or is not a directory."
exit 1
fi
# 遍历文件夹A的所有子文件夹
find "$folderA" -mindepth 1 -maxdepth 1 -type d | while read -r dirA; do
# 获取文件夹A的子文件夹名
subfolderA=$(basename "$dirA")
# 检查文件夹B中是否存在同名的子文件夹
dirB="$folderB/$subfolderA"
if [ -d "$dirB" ]; then
echo "Replacing $dirB with contents of $dirA"
# 删除文件夹B中的子文件夹
rm -rf "$dirB"
# 复制文件夹A中的子文件夹到文件夹B中, "-a" 保留文件的权限、所有者、时间戳、符号链接等属性。
cp -a "$dirA" "$folderB"
fi
done
echo "Replacement done."