Perl-19—檔案屬性操作函數

來源:互聯網
上載者:User

一、檔案位置重定位函數:

1、rename()函數:檔案重新命名

$Ret  =  rename(OldName,NewName);

該函數用於把舊檔案名稱OldName重新命名為一個新的名字NewName,或者是把檔案OldName轉移到指定目錄NewName下面;兩個參數都可以為字串或者運算式;如果OldName與NewName同為檔案名稱或同為目錄名,而且OldName與NewName的目錄名完全相同,則該函數完成的式重新命名工作;如果OldName與NewName的檔案名稱相同,但是路徑不同,則該函數完成的式檔案轉移工作;

調用成功,則返回非零值(真:1);調用失敗,則返回零值(假:0);

也就是說,重新命名或轉移檔案成功,則rename()函數返回非零值(真:1);重新命名或轉移檔案失敗,則rename()函數返回零值(假:0);

2、unlink()函數:刪除檔案

$UnLinkFileNumbers  =  unlink(FileList) ;

該函數用於刪除檔案;參數是一個檔案名稱列表或者儲存一個檔案名稱的簡單變數,函數傳回值為實際刪除的檔案數目;此函數之所以稱為unlink而不是delete是因為unlink()函數實際上所做的是刪除檔案的連結,而不是真正地刪除檔案;因為Unix/Linux系統為每個檔案都設定了一個連結計數,每次刪除一個檔案時,實際上是刪除對該檔案的一個連結,把連結計數減1,只有當連結計數變為0時,作業系統才會真正地去刪除檔案;

函數調用成功,則返回實際刪除的檔案數目(非零,真);調用失敗,則返回零值(假:0);

也就是說,如果刪除檔案成功,則unlink()函數返回實際刪除的檔案數目(非零,真);刪除檔案失敗,則unlink()函數返回零值(假:0);

二、檔案的硬串連和符號串連

1、link()函數:

$Ret  =  link(File,HardLinkName);

該函數用於為檔案File建立一個永久連結HardLinkName;File是連結的源(被連結的檔案),HardLinkName則是新建立的連結名;當刪除File和HardLinkName這兩個名稱中的一個的時候,仍然有通過另外一個名稱來訪問到這個檔案的內容;

函數調用成功,則返回非零值(真:1) ;調用失敗,則返回零值(假:0);也就是說,如果建立到檔案File的永久連結HardLinkName成功,則link()函數返回非零值(真:1);如果建立到檔案File的永久連結HardLinkName失敗,則link()函數返回零值(假:0);

2、symlink()函數:

$Ret  =  symlink(File,SymLinkName);

該函數對現有的檔案File建立一個符號連結SymLinkName,即:這個符號連結僅僅指向檔案名稱File,而並不是指向檔案File本身;參數何傳回值與link()函數相同;當源檔案被刪除的時候,則所建立的符號連結不再可用,除非再建立一個與檔案File同名的檔案;

調用成功,則函數返回非零值(真:1);調用失敗,則返回零值(假:0);也就是說,建立到檔案File的符號連結SymLinkName成功的時候,symlink()函數返回非零值(真:1);建立到檔案File的符號連結SymLinkName失敗時,則symlink()函數返回零值(假:0);

3、readlink()函數:

$FileName  =  readlink(SymLinkName);

如果參數SymLinkName是一個符號連結檔案,則函數返回該符號連結所指向的實際檔案的檔案名稱,否則返回空串;

三、檔案許可權許可函數

1、chmod()函數:

$Ret  =  chmod(Permissions,FileList);

該函數用於吧檔案清單FileList中的檔案的存取權限更改為參數Permissions所指定的許可權;

chmod()函數返迴文件列表FileList中已經被成功更改了存取權限的檔案的數量,沒有區分調用成功與否;

2、chown()函數:

$Ret  =  chown(NewUserID,NewGroupID,FileList);

用於變更檔列表FileList中所有檔案的所有者;

NewUserID:新使用者ID(數字);
NewGroupID:新組ID(數字);-1表示保留原組;

FileList:將要被改變所有者的檔案的列表;

chown()函數返迴文件列表FileList中已經被成功更改了所有者的檔案的數量,沒有調用成功與否;

3、umask()函數:

OldMask  =  umask(NewMask);

該函數用於設定檔案的存取權限掩碼;這個函數接收一個新的參數掩碼NewMask,並返回當前正在使用的舊掩碼值OldMask;

四、其它屬性函數:

1、truncate()函數:

$Ret  =  truncate(File,Length);

該函數把參數File指定的檔案的長度減少到Length位元組。如果檔案File的長度本來就小於Length位元組,那麼該函數什麼都不做;其中參數File即可以是檔案名稱,也可以是檔案控制代碼;

函數調用成功,則truncate()函數返回非零值(真:1);調用失敗,則返回空值(假);

2、stat()函數:

@FileStates  =  stat(File); 

該函數用於擷取檔案File的狀態;參數File既可以是檔案名稱,也可以是檔案控制代碼;

調用成功,則返迴文件的屬性列表;調用失敗則返回空值;

stat()函數返回一個用於存放檔案屬性的列表,列表中元素的順序為:

FileStates[0]:檔案所在的裝置;

FileStates[1]:檔案的內部參考號(inode);

FileStates[2]:存取權限;

FileStates[3]:硬串連數;

FileStates[4]:擁有者的ID(數字);

FileStates[5]:所屬組的ID(數字);

FileStates[6]:裝置類型(如果File是裝置的話);

FileStates[7]:檔案大小(位元組數);

FileStates[8]:建立時間;

FileStates[9]:最後修改時間或最後狀態修改時間HH:MM:SS(00:00:00  ~  23:59:59);

FileStates[10]:最後訪問時間;

FileStates[11]:IO操作最佳塊大小;

FileStates[12]:分配給該檔案的塊數;

3、lstat()函數:

@FileStates  =  lstat(File);

該函數與stat()函數類似,但是區別是:該函數把參數File看作是符號連結;

調用成功,則返迴文件的屬性列表;調用失敗,則返回空值;

返回的屬性列表的結構與stat()返回的屬性列表的結構相同;

4、time()函數:

返回從1970年1月1日0時0分0秒開始到目前時間之間累計的秒數;

$CurrentTime =  time();

5、gmtime()函數:

@TimeElemList  =  gmtime(TimeValue); 

該函數把time()、stat()、以及檔案測試操作符-A和-M返回的時間轉換為格林威治時間,並返回一個含有時間元素的列表:@TimeElemList ;

返回的時間元素的列表@TimeElemList 中的元素順序為:

TimeElemList[0]:秒 (0 ~ 59);

TimeElemList[1]:分(0 ~ 59);

TimeElemList[2]:時(0 ~ 23) ;

TimeElemList[3]:日(1 ~ 31);

TimeElemList[4]:月(0 ~ 11:一月 ~  十二月);

TimeElemList[5]:年;

TimeElemList[6]:星期;

TimeElemList[7]:

TimeElemList[8]:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.