我需要编写一个 Bash 脚本程序。该程序获取源文件夹 d1 和目标文件夹 d2,如下所示:d1@d2。然后 - 她浏览 2 个文件夹中的文件,如果有相同的文件,则从文件夹 d1 中删除它们。需要注意的是,我是该领域的新手,高级方法有限。这是我刚刚编写的代码,我不知道如何继续。
echo -n "Enter parameters in the format "
read directory
x=$(echo $directory | cut -d"@" -f1)
y=$(echo $directory | cut -d"@" -f2)
while [ $f1 -ne $f2 ]
do
if [ $x -ne $y ]
then
$x == $y
continue
fi
done
答案1
IFS
首先,您可以通过设置所选的分隔符来简化格式的解析,这将在而不是空格处read
拆分单词。使用@
通配符 "$b"/*
for 循环将迭代源目录中的文件/目录对象。${d##*/}
从文件对象中删除源路径,然后我们可以创建一个新的目标对象$c/$e
。
#!/bin/bash
IFS=@ \
read -r -p "Enter parameters in the format source@target: " b c
for d in "$b"/*; do
e="${d##*/}"
if [[ -f "$c/$e" ]]; then
echo rm -- "$c/$e"
fi
done