你们是否有一个想法如何搜索或列出服务器上的.exe文件 我目前正在使用(或可能将它放在一个数组中)?
我将在我的Perl程序中使用这个命令。假设我的程序也位于上述服务器上。 我的操作系统是Linux - Ubuntu,如果这很重要,以防万一。在这里使用CLI。 =)如何搜索.exe文件
-5
A
回答
0
我可能会为这个建议被击落,但你不必使用模块一个简单的任务。例如:
#!/usr/bin/perl -w
@array = `find ~ -name '*.exe' -print`;
foreach (@array) {
print;
}
当然,这需要有一些调整的起始目录中的特定选择(这里,我用〜主目录)
编辑:也许我应该说直到你得到的模块安装
1
Perl来寻找带有.exe
后缀指定目录下的所有文件:
#!/usr/bin/perl
use strict;
use File::Spec;
use IO::Handle;
die "Usage: $0 startdir\n"
unless scalar @ARGV == 1;
my $startdir = shift @ARGV;
my @stack;
sub process_file($) {
my $file = shift;
print $file
if $file =~ /\.exe$/io;
}
sub process_dir($) {
my $dir = shift;
my $dh = new IO::Handle;
opendir $dh, $dir or
die "Cannot open $dir: $!\n";
while(defined(my $cont = readdir($dh))) {
next
if $cont eq '.' || $cont eq '..';
my $fullpath = File::Spec->catfile($dir, $cont);
if(-d $fullpath) {
push @stack, $fullpath
if -r $fullpath;
} elsif(-f $fullpath) {
process_file($fullpath);
}
}
closedir($dh);
}
if(-f $startdir) {
process_file($startdir);
} elsif(-d $startdir) {
@stack = ($startdir);
while(scalar(@stack)) {
process_dir(shift(@stack));
}
} else {
die "$startdir is not a file or directory\n";
}
1
看一看File::Find。
或者,如果您可以想出命令行命令,则可以使用find2perl
将该命令行转换为Perl片段。
5
如上所述,您是否需要'* .exe'文件或可执行文件尚不清楚。 您可以使用File :: Find :: Rule查找所有可执行文件。
my @exe= File::Find::Rule->executable->in('/'); # all executable files
my @exe= File::Find::Rule->name('*.exe')->in('/'); # all .exe files
如果您正在寻找可执行文件,你(运行脚本的用户)需要能够执行文件,所以你可能需要运行脚本根。
运行可能需要很长时间。
如果您正在寻找.exe文件,则可能是您的磁盘已被locate
索引。因此,这将是更快:
my @exe= `locate \.exe | grep '\.exe$'`
+0
我想我需要后者。谢谢! ;) – Suezy 2009-09-08 07:12:14
0
得到递归使用
use File::Find;
##cal the function by sending your search dir and type of the file
my @exe_files = &get_files("define root directory" , ".exe");
##now in @exe_files will have all .exe files
sub get_files() {
my ($location,$type) = @_;
my @file_list;
if (defined $type) {
find (sub { my $str = $File::Find::name;
if($str =~ m/$type/g ) {
push @file_list, $File::Find::name ;
}
}, $location);
} else {
find (sub {push @file_list, $File::Find::name }, $location);
}
return (@file_list);
}
相关问题
- 1. 在条件下搜索exe文件
- 2. 如何搜索文件?
- 3. 如何搜索YAML文件?
- 4. 如何搜索JSON文件?
- 5. 如何使用搜索:搜索API在txt文件中搜索?
- 6. 如何索引和搜索.doc文件
- 7. 搜索.exe的路径
- 8. 如何使用Powershell搜索Windows搜索索引文件
- 9. 如何从Eclipse插件搜索文件?
- 10. 从子目录中搜索并运行exe文件
- 11. 搜索文件
- 12. 搜索文件
- 13. 搜索文件
- 14. 搜索文件?
- 15. 如何制作.exe文件
- 16. exe文件如何工作
- 17. 如何生成EXE文件?
- 18. 如何运行.exe文件?
- 19. Eclipse的文件搜索 - 如何搜索特定字符串
- 20. 如何创建搜索文件夹中的文件的搜索表单?
- 21. 如何在用户运行EXE文件时覆盖EXE文件?
- 22. 如何在JAR中搜索文件?
- 23. 如何搜索折叠JSON文件
- 24. 如何用Windows搜索.htaccess文件?
- 25. 如何在android中搜索* .avi文件?
- 26. 如何使用lucene搜索文件
- 27. 如何搜索Json文件中的值
- 28. 如何让make搜索头文件
- 29. 如何搜索图像文件
- 30. 如何用php搜索文件
你能给的你真正想要实现的一个例子吗? Linux不使用“.exe”文件,这是Windows的事情。 – 2009-09-08 06:49:29
我的Perl程序旨在删除一个特定的.exe文件..例如,所有“sampleFile.exe”不同版本的程序执行时都必须删除,因为我只需要最新版本。可能吗? – Suezy 2009-09-08 06:55:13
不确定在linux会话中运行时是否可以读取Windows可执行文件的特定版本元数据。这个任务在Windows中不会更容易吗? – benPearce 2009-09-08 06:57:12