find2perl转换找到的命令行为Perl代码
功能描述:
使用find2perl命令可以找到命令行并转换为等效的Perl代码。
命令语法:
find2perl[路径][谓词]|[per]
find2perl命令谓词
谓词描述
-size N如果文件的大小为N则为真
-links N如果(硬)链接文件的总数为N则为真
-atime N如果文件的最后访问时间为N则为真,单位为天
-ctime N如果文件inode的最后修改时间为N则为真,单位为天
-mtime N如果文件的最后修改时间为N则为真,单位为天
-fstype TYPE当前路径的文件系统的类型是TYPE
-perm -PERM设置文件的权限
-user USER如果USER是文件的所有者则为真
-group GROUP如果文件的组群是GROUP则为真
-nouser如果文件的所有者不在密码数据库中则为真
-nogroup如果文件的组群所有者不在组群数据库中则为真
-ls可模拟“-excc ls -dils {};”
-follow按照符号链接的取值
-inum INUM文件的inode号是INUM则为真
-newer FILE如果文件的最后修改时间为N则为真
-depth从广度优先到深度优先更改目录遍历算法
-name GLOB文件名指定GLOB通配符模式匹配
例如:
在/etc/目录下找到命令行并转换为等效的Perl代码
[root@localhost ~]# find2perl -name crontab
#! /usr/bin/perl -w
'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; #$running_under_some_shell
use strict;
use File::Find ();
# Set the variable $File::Find::dont_use_nlink if you're using AFS,
# since AFS cheats.
# for the convenience of &wanted calls, including - statements:
use vars qw/*name *dir *prune/;
*name = *File::Find::name;
*dir = *File::Find::dir;
*prune = *File::Find::prune;
sub wanted;
# Traverse desired filesystems
File::Find::find({wanted => &wanted}, '.');
exit;
sub wanted {
/^crontabz/s
&& print("$namen");
}