ディレクトリを削除する

perl02

PERLからUNIXコマンドを使ってディレクトリを削除する方法。

 

ディレクトリを中身ごと削除する

ディレクトリ及び、その中身をすべて削除。

use FindBin;

$root_path = "$FindBin::Bin";
`rm -rf $root_path`;

 

-r オプション:中身も削除

-f オプション:確認無しで削除。

 

 

ディレクトリの中身だけを削除する

ディレクトリは残し、中のファイル及びディレクトリをすべて削除。

use FindBin;

my $root_path = "$FindBin::Bin/data";
`find "$root_path" -mindepth 1 -delete`;

 

-mindepth 1 は、ルートディレクトリ自体を対象から除外し、その中の内容だけを削除するオプション。

 

直接コマンドを叩く場合も、PERLから実行する場合も、ファイル名やフォルダ名に空白が含まれる可能性があるなら、"" ダブルクォーテーションでくくる。空白がないことがわかっているならくくる必要なし。