標籤:style blog http os 檔案 2014 cti log
1、改變目錄
chdir "/etc" or die "can‘t chdir to ‘/etc‘!\n";
省略參數會回到使用者主目錄,與cd效果一樣;
2、檔案名稱通配
my @all_files = glob "*";#不包括以點號開頭的檔案
my @pm_files = glob "*.pm";
一次匹配多種模式,用空格隔開:my @files = ".* *";#可以匹配所有的檔案,包括以點號開頭
3、檔案名稱通配另一種文法
my @files = <*>;##等效於:my @files = glob "*";
支援變數插入:my $dir="/etc";my @dir_files=<$dir/* $dir/.*>;
角括弧支援檔案控制代碼和檔案名稱通配,Perl會自行判斷選擇哪一種操作,如果是標識符,就當作檔案讀取,否則按檔案名稱通配處理:
4、目錄控制代碼
目錄控制代碼可以開啟(opendir)、讀取(readdir,讀取的為檔案名稱)、關閉(close);
目錄控制代碼是低級操作符,只能返回基本的資訊,需要進行額外處理。
5、刪除檔案
unlink "file1","file2","file3";##返回成功刪除的檔案數,無法知道哪個刪除失敗
不能用來刪除目錄;
一次刪除多個檔案:unlink glob "*.o";
刪除檔案的許可權和檔案本身的許可權無關,取決於檔案所在目錄的許可權,因此某個無法讀取、寫入、執行的檔案也可能被刪除;
6、重新命名檔案
rename "old","new";
實作類別似mv的效果:rename "/home/place/file1" "file2"
7、連結與檔案
永久連結:
會使檔案的連結數增加,只要有一個連結存在,檔案就存在。
不能增加目錄的連結數,不能跨掛載卷連結。
軟連結(符號連結):
不會增加檔案的連結數,可以指向不存在的檔案
取得符號連結指向的位置:
8、建立及移除目錄
建立目錄:
0755為許可權,無法將字串直接解釋成八位元字,需用otc函數:
移除目錄:
每次只能刪除一個目錄,並且必須是空目錄,如果不是空目錄,可以用unlink刪除:
$$:當前進程號。
如果目錄中還有子目錄,則unlink會失敗,進而導致rmdir失敗。File::Path模組中的 rmtree 提供了比較完整的解決方案。
9、修改許可權
chmod 0755,"file1","file2";
10、更改隸屬關係
必須以數字形式指定使用者識別碼和群組識別碼,如果不知道,可採用如下方式處理:
11、修改時間戳記
第三個時間戳記 ctime 一定會被設為now,沒有函數可以修改它。