现在,我的代码是这样的:
#!/bin/bash
Dir1=$1
Dir2=$2
for file1 in $Dir1/*; do
for file2 in $Dir2/*; do
if [[ $file1 == $file2 ]]; then
echo "$file1 is contained in both directories"
fi
done
done
我试图比较输入的两个目录的文件名,并说如果文件名匹配,则该文件在两个目录中。
当我试着运行它的时候,即使我在两个目录中都有相同的文件,也不会回显任何内容。
最佳答案
Dir1
和Dir2
中的文件:
find "$Dir1/" "$Dir2/" -printf '%P\n' | sort | uniq -d
在
Dir1
中但不在Dir2
中的文件:find "$Dir1/" "$Dir2/" "$Dir2/" -printf '%P\n' | sort | uniq -u
在
Dir2
中但不在Dir1
中的文件:find "$Dir1/" "$Dir1/" "$Dir2/" -printf '%P\n' | sort | uniq -u
关于bash - 如何在Shell脚本中比较两个目录中的文件名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28205735/