Perl 指令碼在給定的資料夾目錄中遞迴查詢檔案

2021-06-22 14:13:30 字數 2098 閱讀 4139

最近在工作中使用到了perl 指令碼,需要在給定目錄下對各類編譯過的檔案進行 valgrind 安全檢查。 謝了乙個指令碼自動將檢查結果寫入到文字檔案當中。

程式名為 process_files:

原理: 從根目錄(給定引數)開始查詢, 如果找到的檔案仍然為子資料夾,遞迴呼叫。

如果找到的是檔案,則判斷是否是我們感興趣的檔案。

查詢過程中,排除linux下 .  .. 資料夾

最後將結果輸出到文字檔案,便於檢視和糾錯。

主要函式: process_files

#!/usr/bin/perl

use warnings;

use strict;

use io::handle;

use file::stat;

use term::ansicolor;

stdout->autoflush(1);

my $binstr = "bin.x86_64";

my $dir = '/rapid/rapid_workspaces/jxu/jxu_rtc_new/fusion/sw';

print ("fusion dir is :$dir\n");

my $wantedfiles = 0;

my $processedfs =0;

my $target = 'valgrind.log';

my $processedfiles = 'valgrindprocessfiles.log';

system ("rm -f $processedfiles"); #remove it

system ("touch $processedfiles"); #create it

print ("processedfiles file is :$processedfiles\n");

system ("rm -f $target"); #remove it

system ("touch $target"); #create it

print ("target file is :$target\n");

sub process_files $/} readdir(dir); #exclude . or .. directory

closedir (dir);

@files = map @files;

for(@files)

else # this a file we found

} }}

print "\nvalgrind unit tests start...\n";

for (my $num =0; $num <3; $num++)

print "\nvalgrind unit tests now start...\n";

#really starts recursively start#

open (processedfiles,'>>',"$processedfiles") or die "couldn't open the file : $!"; # open a file with open command

process_files($dir);

close processedfiles;

close file;

my $editor ="vi "; # finally we open the result file

my $pideditor = fork();

if ($pideditor ==0)

my $pideditor2 = fork();

if ($pideditor2 ==0)

其中,使用到了sub routine : process_files, 具體**如下:

sub process_files $/} readdir(dir); #exclude . or .. directory

closedir (dir);

@files = map @files;

for(@files)

else # this a file we found

}}}

Perl 複製整個資料夾

perl copy只能複製檔案,不能複製資料夾,因此只能用外擴包進行資料夾的複製 進入 搜尋file copy recursive 用文字編輯器開啟包,將包名package file copy recursive改為package recursive 在perl檔案中呼叫,這裡我.pl檔案所在的路徑...

Perl 檔案和資料夾操作

作為一門程式語言,perl有著強大的檔案和資料夾操作功能。perl利用檔案控制代碼 file handle 和資料夾控制代碼 dir handle 與作業系統進行輸入輸出連線。檔案和資料夾控制代碼一般使用大寫子母或指定標量以示特殊。檔案開啟語句及說明 一般加入die函式做開啟失敗的提示。my fil...

linux的資料夾 檔案目錄許可權

linux下檔案的許可權 在當前目錄下,使用ls l命令可以查出當前目錄下非隱藏檔案的許可權設定。在許可權字段一共有十個位 如 rwxrwx w 減號是表示沒有這個許可權。第一位是用於表示檔案屬性的,如果是 d 則表示這是乙個資料夾,如果是 l 表示這是乙個鏈結,如果是 則表示是乙個普通檔案。第2位...