#!/usr/bin/perl -w # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved. # # traverse the entire filesystem dumping info. # use MD5; use Getopt::Std; my %opt; sub scan($) { my ($file)=@_; my ($md5)=new MD5; my (@stat); unless (@stat=lstat("$file")) { printf("%-" . ($opt{v}?65:32) . "s $file\n", "!!! could not lstat"); return; } $stat[0]=$stat[8]=""; # wipe the device and access time $md5->reset; $md5->add(join(" ",@stat)); print join(" ",@stat), "\n"; if ($opt{v}) { print $md5->hexdigest . " "; $md5->reset; } if (-l "$file") { if (!defined($link = readlink $file)) { printf("%-32s $file\n", "!!! could not readlink"); return; } $md5->add($link); } elsif (-f "$file") { if (!open(FILE, "$file")) { printf("%-32s $file\n", "!!! could not read"); return; } $md5->addfile(FILE); close (FILE); } print $md5->hexdigest . " $file\n"; } getopts('vs', \%opt); die "Usage: $0