大家好,
I was trying to find the difference between two directories, dir structure as follows.
当我尝试使用“diff -r dir1 dir2”时,它只显示文件中的内容差异,但我想要新增加文件的实习生。
我们可以使用“diff”命令找到这些目录之间的差异。
答案 0 :(得分:1)
尝试使用--brief
选项,例如:
$ diff --recursive --brief dir1 dir2
Only in dir1/dir1: file1
Only in dir2/dir1: file2
Only in dir1: dir2
$
答案 1 :(得分:0)
Alt.1 - 使用diff
diff <(ls dir1) <(ls dir2)
Alt.2 - 不使用diff的脚本
for i in /my/directory/*; do
name=$(basename "$i")
if [[ ! -e "/my/other/directory/$name" ]]; then
echo $name not found in other directory
fi
done
答案 2 :(得分:0)
diff -qrN dir1 dir2
如果其中一个目录的名称可能与参数混淆
diff -qrN -- -f -z
其中-f和-z实际上是目录名
删除q
参数,以获取有关更改内容的更多详细信息。如果您想了解更多细节,请使用以下
diff -rupN -- dir1 dir2
答案 3 :(得分:0)
我有兴趣在特定目录中查找安装后创建的新文件,因此我执行了以下操作:
mkdir -p ~/tmp/snapshot/
cp -al ~/DirOfInterest/ ~/tmp/snapshot/
~/DirOfInterest/
中执行安装diff -qr ~/DirOfInterest/ ~/tmp/snapshot/DirOfInterest/ &>~/ListOfNewFiles.txt
rm -rf ~/tmp/snapshot/DirOfInterest/
注意:由于“快照目录”是由硬链接组成的镜像,因此在整个安装过程中“快照”时对已存在文件的修改将不会被检测到,因为硬链接指向相同的数据块. 仅新创建的文件 会被检测到。