击。使用diff

时间:2014-11-06 15:24:18

标签: linux bash diff ls

编写一个脚本来比较两个目录中的文件,忽略与添加空行,空格,制表符相关的更改,并在excludeFiles中使用通配符,以排除不必要文件的比较。指定为参数的文件,记下这些文件的名称,它们的索引节点和创建日期。

我知道如何做第一部分(在点之前)。

   diff -rwBd -X excludeFiles mydir1 mydir2 > changes.diff

但是不明白如何做第二部分“指定为参数的文件,记下这些文件的名称,它们的i节点和创建日期。”我想我需要使用ls ....

1 个答案:

答案 0 :(得分:1)

您可以忽略diff输出(-q),获取文件名并使用ls表示inode(-i)和ctime(-c)

$ diff -rwBdq -X excludeFiles mydir1 mydir2 | awk '{print $2" "$4}' | xargs ls -lic
2415432 -rw-r--r-- 1 user group  4163 Nov  6 15:21 mydir1/file1
2415434 -rw-r--r-- 1 user group  1042 Nov  6 15:21 mydir2/file1
2415433 -rw-r--r-- 1 user group  4163 Nov  6 15:21 mydir1/file2
2415435 -rw-r--r-- 1 user group  1042 Nov  6 15:21 mydir2/file2