对于我的作业,我必须检查目录中的两个文件是否具有相同的内容,如果是,则将一个文件替换为另一个文件的硬链接。我的脚本看起来像:
cd $1 # $1 is the directory this script executes in
FILES=`find . -type f`
for line1 in $FILES
do
for line2 in $FILES
do
(check the two files with cmp)
done
done
我的问题是我无法找出条件表达式来确保两个文件不相同:如果目录中有文件 a、b、c 和 d,则它不应该返回 true 来检查 a 和 a。我该怎么做呢?
编辑:所以我有这个:
cmp $line1 $line2 > /dev/null
if [ $? -eq 0 -a "$line1" != "$line2" ]
但它会计算文件两次:它检查a
and b
,然后检查b
and a
。出于某种原因,使用<
字符串不起作用。
编辑:我想我想通了,解决方案是\
在<