2017-04-21 41 views
0

我想列出存在於我的根目錄下的所有目錄下的特定文件夾中的所有文件。
假設我的根目錄是.,並且存在多個文件夾,如a1,b1,c1........a2,b2
現在,在所有這些文件夾中有一個特定文件夾這是source/,這樣就會像如何使用存在於根目錄中所有目錄下的特定文件夾中的shell腳本列出所有文件?

a1/source/ 
b1/source/ 
. 
. 
a2/source/ 
b2/source/ 

所有必要的文件都存在。我可以通過shell腳本源文件及其絕對路徑列出.目錄中文件的所有文件嗎?

+0

我說得對不對?您需要列出這些文件夾中的子目錄中的名稱** source **的內容? –

+0

您是否想在深度大於2的'source'目錄中列出文件?例如'a1/a2/a3/source'中的文件? –

回答

0

在Perl中你可以使用File::Find

use feature qw(say); 
use strict; 
use warnings; 

use File::Basename qw(basename); 
use File::Find; 

find(\&wanted, '.') ; 

sub wanted { 
    my $name = $_;  
    my $parent_dir = basename($File::Find::dir); 
    if ((-f $name) && ($parent_dir eq "source")) { 
     say $File::Find::name; 
    } 
} 
1

的StackOverflow是不是一個真正的 「寫我的代碼爲我」 服務。但在Perl中這很簡單。

假設source目錄永遠只能出現在同一級別:

my @files = glob '*/source/*'; 
相關問題