以下列出了一些操作目錄的標準函數:
opendir DIRHANDLE, EXPR # 開啟目錄readdir DIRHANDLE # 讀取目錄rewinddir DIRHANDLE # 定位指標到開頭telldir DIRHANDLE # 傳回目錄的目前位置seekdir DIRHANDLE, POS # 定位指定到目錄的POS 位置上的目前位置seekdir DIRHANDLE, POS # 定位指定到目錄的POS 位置。
顯示所有的文件
顯示目錄下的所有文件,以下實例使用了glob 操作符,示範如下:
實例
#!/usr/bin/perl # 顯示/tmp 目錄下的所有文件$dir = " /tmp/* " ; my @files = glob ( $dir ) ; foreach ( @files ) { print $_ . " n " ; } # 顯示/tmp 目錄下所有以.c 結尾的文件$dir = " /tmp/*.c " ; @files = glob ( $dir ) ; foreach ( @files ) { print $_ . " n " ; } # 顯示所有隱藏文件$dir = " /tmp/.* " ; @files = glob ( $dir ) ; foreach ( @files ) { print $_ . " n " ; } # 顯示/tmp 和/home 目錄下的所有文件$dir = " /tmp/* /home/* " ; @files = glob ( $dir ) ; foreach ( @files ) { print $_ . " n " ; }以下實例可以列出目前目錄下的所有檔案:
實例
#!/usr/bin/perl opendir ( DIR , ' . ' ) or die "無法開啟目錄, $! " ; while ( $file = readdir DIR ) { print " $file n " ; } closedir DIR ;如果你要顯示/tmp 目錄下所有以.c 結尾的文件,可以使用以下程式碼:
實例
#!/usr/bin/perl opendir ( DIR , ' . ' ) or die "無法開啟目錄, $! " ; foreach ( sort grep ( /^.*. c $/, readdir ( DIR ) ) ) { print " $_ n " ; } closedir DIR ;建立一個新目錄
我們可以使用mkdir函數來建立一個新目錄,執行前你需要有足夠的權限來建立目錄:
實例
#!/usr/bin/perl $dir = " /tmp/perl " ; # 在/tmp 目錄下建立perl 目錄mkdir ( $dir ) or die "無法建立$dir目錄, $! " ; print "目錄建立成功n " ;刪除目錄
我們可以使用rmdir函數來刪除目錄,執行該操作需要有足夠權限。另外要刪除的目錄必須的空目錄:
實例
#!/usr/bin/perl $dir = " /tmp/perl " ; # 刪除/tmp 目錄下的perl 目錄rmdir ( $dir ) or die "無法刪除$dir目錄, $! " ; print "目錄刪除成功n " ;切換目錄
我們可以使用chdir函數來切換當期目錄,執行該操作需要有足夠權限。實例如下:
實例
#!/usr/bin/perl $dir = " /home " ; # 將當期目錄移到/home 目錄下chdir ( $dir ) or die "無法切換目錄到$dir , $! " ; print "你現在所在的目錄為$dir n " ;執行以上程序,輸出結果為:
你現在所在的目錄為/home