簡體   English   中英

如何在perl中開發一個腳本,該腳本可以遞歸刪除子文件夾和父目錄中的數據?

[英]How to develop a script in perl which can delete the data in sub folders recursively and also the parent directory?

嗨,文件夾結構如下

mishel/      #Parent directory  
      mike1  #sub file of mishel  
      minni1 #sub file of mishel  
      rosy1  #sub file of mishel
        rocky/      #sub directory of mishel
             missi  #subfile of rocky
             marsh  #subfile of rocky
             milly  #subfile of rocky 
               monu/     #sub directory of rocky
                  mike  #sub file of monu
                  minni #sub file of monu
                  rosy  #sub file of monu

所以這是我的問題:我想使用一個腳本,它可以自動刪除所有文件和子文件夾。

如果我們使用函數“ rmdir(dirname)”,則目錄必須為空。 因此,是否有可能從子目錄刪除到父目錄。

編寫一個將目錄作為參數的函數。 讓該函數在目錄中執行readdir 對於readdir返回的每個項目,請檢查它是否是文件-如果是,則將其刪除。 如果是目錄,請以子目錄為參數再次調用該函數。 如果沒有任何項目( ...除外),請刪除目錄。

use Path::Class;
my $dir = dir('foo');
$dir->recurse(callback => sub {
    unlink $_[0] if !$_[0]->is_dir;
});
$dir->rmtree(0, 1);

要么 :

use File::Path ('rmtree');
rmtree('foo', 0, 0);

參見http://www.perlmonks.org/bare/?node_id=605930

perl -e 'system "find mishel -delete"'

嘗試使用File::Path模塊的remove_tree函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM