Files

目錄中文件的區別

  • September 2, 2015

我有兩個具有相同文件但內容有所不同的目錄。我想列出那些不同的文件。例如

有兩個文件夾 Folder1 和 Folder2,其中包含文件 file1、file2、file3 等。Folder1 的 file2 與 Folder2 的 file2 不同。

所以我的命令應該列出file2。

我怎樣才能做到這一點 ?

您可以將目錄與diff

$ diff -qr dirA dirB
Only in dirB: file.txt
Files dirA/README and dirB/README differ

我確信有專門的工具用於這個目的(fdupes我想到)這個簡單的腳本應該可以完成這項工作:

#!/usr/bin/env sh

if [ "a$1" = a -o "a$2" = a ]
then
   echo Directory name missing.
   echo Exiting
   exit 1
fi

for i in "$1"/*
do
   filename=$(basename "$i")
   diff "${1}/${filename}" "${2}/${filename}" > /dev/null 2>&1
   if [ "$?" -eq 1 ]
   then
   echo "$filename" is different
   fi
done

exit 0

你必須有diff二進製文件$PATH(你可能有它)。用法:

$ ./diff.sh  Folder1 Folder2
7 is different
file2 is different

引用自:https://unix.stackexchange.com/questions/226973