在连续文件名中查找缺少的数字(高级ls& find)

时间:2009-11-20 19:18:12

标签: linux command-line ls

假设我有一个脚本可以随着时间的推移生成递增的文件夹名称(100,101,102,103,104等......)。这些文件夹在计算机之间同步,并且系统2上的任何给定文件夹都有可能创建失败。

系统1始终保持同步: 100 / 101 / 102 / 103 / 104 / 等...

系统2可能有错误: 100 / 102 / 103 / 等...

(如您所见,系统2上缺少101 /& 104 /)

如何生成系统2上所有丢失文件夹的列表?

P.S。 Rsync实际上不是一个选项,因为实际的文件夹数量非常高。

4 个答案:

答案 0 :(得分:2)

您可以将每台计算机上ls的内容通过管道传输到文件,然后将这两个文件进行差异处理。您还可以使用命令comm来显示仅在一个文件中的行,而不是在另一个文件中。

答案 1 :(得分:1)

你可以这样做:

% ls -1 System1 > ls.System1            # Use the -1 flag to ensure 1 dir per line
% ls -1 System2 > ls.System2
% comm -23 ls.System1 ls.System2
101
104

comm命令可以显示两者共有的内容,f1独有或f2唯一:

comm -12 f1 f2  # common to both
comm -23 f1 f2  # unique to f1
comm -13 f1 f2  # unique to f2

答案 2 :(得分:0)

只需生成成功创作的列表

答案 3 :(得分:0)

你可以使用diff。假设您已将system2映射到路径

diff system1/path system2/path