এর কাছে যাওয়ার আরও একটি উপায় হ'ল find2perl
স্ক্রিপ্ট, যা কোনও find
কমান্ডের (এখানে একটি উপসেট) সম্পর্কিত পার্ল স্ক্রিপ্টে রূপান্তর করে । File::Find
ভারী উত্তোলন করতে পার্ল স্ক্রিপ্ট একটি মডিউল ব্যবহার করে । যেহেতু আমার সিস্টেমে Find2perl লিপিটি প্রাকটিকেট সমর্থন করে না -printf
, তাই আমি ম্যানুয়ালি এটিকে যুক্ত করেছি:
#! /usr/bin/perl -w
use strict;
use File::Find ();
use vars qw/*name *dir *prune/;
*name = *File::Find::name;
*dir = *File::Find::dir;
*prune = *File::Find::prune;
sub wanted {
my ($dev,$ino,$mode,$nlink,$uid,$gid, $mtime, $year, $month, $day);
if ((($dev,$ino,$mode,$nlink,$uid,$gid,undef,undef,undef,$mtime) = lstat($_)) &&
-f _ &&
/^temp.*\z/s) {
(undef, undef, undef, $day, $month, $year) = localtime($mtime);
$year += 1900;
$month++;
printf "%d-%d-%d %s\n", $year, $month, $day, $_;
}
}
File::Find::find({wanted => \&wanted}, 'data/');
exit;
আমি যে দুটি নমুনা ফাইল তৈরি করেছি সেগুলিতে আউটপুট একই:
$ tree data
data
├── subdir
│ └── foo
│ └── temp2
└── temp1
2 directories, 2 files
$ touch -d 2018-06-20 data/subdir/foo/temp2
$ touch -d 2018-05-19 data/temp1
$ find data/ -type f -name "temp*" -printf "%TY-%Tm-%Td %f\n" | sort -r
2018-06-20 temp2
2018-05-19 temp1
$ ./perlfind | sort -r
2018-06-20 temp2
2018-05-19 temp1
find
সোলারিসে জিএনইউ ব্যবহার করতে , অনুসন্ধানের প্যাকেজটি ইনস্টল করুন ।