一、檔案位置重定位函數:
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]: