如何递归比较两个不同文件夹中的用户和组?

延斯

我有两个文件夹,里面有很多子文件夹和文件。例如:

/wordpress/htdocs/wp-content/ 
/wordpress/htdocs2/wp-content/

在这两个文件夹下方,每个文件夹都有许多子文件夹和文件的完整结构。我想要做的是比较两个子结构中存在的每个文件的所有权(在第二个命令权限中)。哪里有差异,我想让它们显示出来。

结果应该是这样的:

-rw-rw-r-- 1 user1 group1 104343 Oct 23  2017 /wordpress/htdocs/wp-content/images/comment.jpg     ||    -rw-rw-r-- 1 user1 group2 104343 May 15  2018 /wordpress/htdocs2/wp-content/images/comment.jpg

执行我在这里搜索的命令后,将显示这两行,因为“相同”文件的组不同(相同文件但在不同文件夹中)。

user1 group1   ||   user1 group2

我试过的:

我尝试过的是在两个文件夹中使用以下命令并比较输出文件。但是,这不起作用,因为几乎所有文件的修改时间都不同。因此,它不会将范围缩小到真正相关的信息。

sudo find . -exec ls -l -all {} \; | sudo tee usergroup.txt >/dev/null

然后我用这个命令来比较结果:

diff -c /wordpress/htdocs/usergroup.txt /wordpress/htdocs2/usergroup.txt

但正如所说的结果太大,并没有真正的帮助。

  1. 我该如何解决这个问题 - 最好使用单衬纸?

  2. 只是出于好奇:如何在使用 syde-by-side 时diff显示(或输出到文件)行?它通常以一定的长度切割线。

罗宾479

ls -l输出包括每个文件的修改时间,这很可能是这两个文件树之间的不同,这就是为什么diff报告他们。

您应该使用find's-printf '…'选项并只打印相关信息。这也将节省很多ls流程。在两棵树上都这样做两次,输出可以更合理地进行比较。

(顺便find一句,报告文件和文件夹,并且您… -exec ls -al {} \;在文件夹上将再次显示其内容 - 以及其他噪音,例如...。您可以使用 来抑制它-d,但正如我已经说过的,您应该ls完全避免使用,因为它的主要目的是列出(因此,名称)目录的内容,而不是stat单个文件)。

diff并排模式 ( -y)使用时它必须在某个时刻切断每一行,因为您要求它在第一个旁边漂亮而整齐地显示第二个流默认是每行最多输出 130 个字符(我猜),但您可以使用-W. 就个人而言,我会完全避免并排显示,但您可以这样做:

#!/bin/bash

diff -y -W 300 --suppress-common-lines \
    <(find /path1/wp-content -printf '%u %g %m %P\n') \
    <(find /path2/wp-content -printf '%u %g %m %P\n')

查看man diffman find(关于 的部分-printf),了解您可以打印关于文件的哪些内容,例如其大小。为了抑制find输出中的文件夹,您应该-type f-printf部分之前放置一个(即仅在打印前查找真实文件)。我的例子可能不能完全回答你的问题,但你明白了。

PS:diff通常会在不同行附近输出一些上下文行,以便人和机器更容易在原始文件中找到这些行。事实上,在并排模式下,默认情况下diff实际上将始终显示所有内容——无论是否存在差异。选项--suppress-common-lines将抑制它。在正常模式下(不是并排),该选项也会稍微改变diff-- 包括<>在每行不同的前面的输出格式也许这应该足够且易于阅读,因此您完全不需要并排选项。试试吧。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何递归比较两个文件夹并生成不同文件和文件夹的列表?

来自分类Dev

如何比较两个不同文件夹中的文件并执行条件复制

来自分类Dev

Python - 如何在两个不同文件夹中一一比较文件

来自分类Dev

两个不同文件夹中的两个不同的wordpress网站

来自分类Dev

两个不同文件夹的总和

来自分类Dev

我们如何比较两个不同文件中的两个列表?

来自分类Dev

如何比较两个不同文件的两列

来自分类Dev

比较两个文件夹,将一个文件夹中的不同文件复制到另一个文件夹

来自分类Dev

比较两个文件夹,将一个文件夹中的不同文件复制到另一个文件夹

来自分类Dev

在不同文件夹中连续执行两个命令

来自分类Dev

比较两台不同计算机上的两个相同文件夹,SSH问题

来自分类Dev

比较两台不同计算机上的两个相同文件夹,SSH问题

来自分类Dev

用于比较两个不同文件夹内容并根据最小相似度重命名它们的脚本

来自分类Dev

如何在单个终端中运行两个不同文件夹的两个“ python manage.py runserver”命令

来自分类Dev

如何同步两个不同系统中的两个文件夹

来自分类Dev

比较两个文件夹中丢失的文件

来自分类Dev

AWK-比较两个不同文件中两个变量的值

来自分类Dev

比较两个不同文件中的两个元组

来自分类Dev

AWK-比较两个不同文件中两个变量的值

来自分类Dev

grunt-contrib-imagemin-拍摄两个不同文件夹的图像

来自分类Dev

合并两个具有不同文件夹名称的git分支

来自分类Dev

比较不同文件夹中的所有代码?

来自分类Dev

如何在Windows PowerShell中比较两个.zip文件夹中的文件

来自分类Dev

如何比较两个不同的列数据,而不考虑不同文本文件中的顺序?

来自分类Dev

通过jekins在两个不同文件夹中的相同工作空间下签出两个git存储库

来自分类Dev

比较shell脚本中两个不同文件中的两列

来自分类Dev

gnu diff可以递归地仅比较不同文件夹结构中的文件名吗?

来自分类Dev

如何比较来自两个不同文件的两列?

来自分类Dev

如何比较两个文件夹中的多个屏幕截图

Related 相关文章

  1. 1

    如何递归比较两个文件夹并生成不同文件和文件夹的列表?

  2. 2

    如何比较两个不同文件夹中的文件并执行条件复制

  3. 3

    Python - 如何在两个不同文件夹中一一比较文件

  4. 4

    两个不同文件夹中的两个不同的wordpress网站

  5. 5

    两个不同文件夹的总和

  6. 6

    我们如何比较两个不同文件中的两个列表?

  7. 7

    如何比较两个不同文件的两列

  8. 8

    比较两个文件夹,将一个文件夹中的不同文件复制到另一个文件夹

  9. 9

    比较两个文件夹,将一个文件夹中的不同文件复制到另一个文件夹

  10. 10

    在不同文件夹中连续执行两个命令

  11. 11

    比较两台不同计算机上的两个相同文件夹,SSH问题

  12. 12

    比较两台不同计算机上的两个相同文件夹,SSH问题

  13. 13

    用于比较两个不同文件夹内容并根据最小相似度重命名它们的脚本

  14. 14

    如何在单个终端中运行两个不同文件夹的两个“ python manage.py runserver”命令

  15. 15

    如何同步两个不同系统中的两个文件夹

  16. 16

    比较两个文件夹中丢失的文件

  17. 17

    AWK-比较两个不同文件中两个变量的值

  18. 18

    比较两个不同文件中的两个元组

  19. 19

    AWK-比较两个不同文件中两个变量的值

  20. 20

    grunt-contrib-imagemin-拍摄两个不同文件夹的图像

  21. 21

    合并两个具有不同文件夹名称的git分支

  22. 22

    比较不同文件夹中的所有代码?

  23. 23

    如何在Windows PowerShell中比较两个.zip文件夹中的文件

  24. 24

    如何比较两个不同的列数据,而不考虑不同文本文件中的顺序?

  25. 25

    通过jekins在两个不同文件夹中的相同工作空间下签出两个git存储库

  26. 26

    比较shell脚本中两个不同文件中的两列

  27. 27

    gnu diff可以递归地仅比较不同文件夹结构中的文件名吗?

  28. 28

    如何比较来自两个不同文件的两列?

  29. 29

    如何比较两个文件夹中的多个屏幕截图

热门标签

归档