使用sunOS中的find命令比较两个目录中的所有文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用sunOS中的find命令比较两个目录中的所有文件相关的知识,希望对你有一定的参考价值。

我试图在两个目录中遍历并比较每个文件并找出它们之间的差异我使用保存文件名和使用perl哈希数据的find命令显然是在使用SunS 5.10,下面的代码可以工作Linux操作系统

失败的代码片段

use strict;
use warnings;
use File::Find;

my (%files1, %files2);
my ($dir1, $dir2) = @ARGV;
find( sub { -f && $files1{$_} = $File::Find::name }, $dir1);
find( sub { -f && $files2{$_} = $File::Find::name }, $dir2);

错误

perl -c test_compare.pl
Can't modify logical and (&&) in scalar assignment at test_compare.pl line 9, near "$File::Find::name }"
test_compare.pl had compilation errors.
答案

这是因为operator precedence,你可以使用and而不是&&

find( sub { -f and $files1{$_} = $File::Find::name }, $dir1);

以上是关于使用sunOS中的find命令比较两个目录中的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

linux find命令查找当前目录下7天前的文件但排除所有目录

find查找文件命令 - Linux系统中的常用技巧整理

存在于两个不同目录中的差异文件

linux中“grep”和“find”的区别是啥?

Linux命令-find命令

find 命令详解