3.4.2 檔案操作指令簡介

作業系統的一個基本功能就是要能夠處理檔案的複製、刪除等工作,Linux 底下自然也有許許多多關於檔案操作的指令,在這邊筆者只說明幾個基本指令,告訴讀者應該如何製造目錄,以及如何複製、刪除、搬移檔案。

mkdir [-p] DIRECTORY    新建目錄

"mkdir" 可以用來建立目錄,後面的參數當然就是想要建立的目錄名稱囉,加上選項 "-p" 的話,會確保一定會建立新的目錄:

[platin@h2 platin]$ ls -l
total 0
[platin@h2 platin]$ mkdir bin
[platin@h2 platin]$ ls -l
total 1
drwxrwxr-x 2 platin platin    1024 May 12
16:31 bin

在 "/home/platin/" 底下建立 "bin" 目錄,這個目錄的絕對路徑就是 "/home/platin/bin"。

[platin@h2 platin]$ mkdir bin/perl/script
mkdir: 不能製造目錄 `bin/perl/script': No such
file or directory

要建造 "bin" 底下兩層的目錄 "bin/perl/script",不過因為這個目錄的上一層目錄 ("bin/perl/") 不存在,所以不能建立。

[platin@h2 platin]$ mkdir -p bin/perl/script
[platin@h2 platin]$

加了 "-p" 就可以了。

cp [-pfr] SOURCE... DEST    複製檔案

"cp" 指令可以用來複製檔案,跟 DOS 底下的 "copy" 指令很類似,Linux 的 cp 可以可以用來複製目錄,也可以一次複製多個檔案,當有超過一個以上的 SOURCE 的時候,最後的目的地 DEST 一定要是個目錄名稱,"cp" 會將所有的檔案複製到該目錄底下,常用的參數有:

-p        複製後保留檔案的權限等性質。
-f        強迫複製,蓋掉原來的舊檔。
-r        連目錄一起複製。

[platin@h2 platin]$ cp a* tmp/
aaa -> tmp/aaa
abc -> tmp/abc
add -> tmp/add
[platin@h2 platin]$

把所有檔名以 a 開頭的檔案複製一份到 "tmp/" 目錄下。

[platin@h2 platin]$ cp bin tmp/
cp: s: 不複製目錄
[platin@h2 platin]$ cp -r bin tmp/
bin -> tmp/bin
bin/perl -> tmp/bin/perl
bin/perl/script -> tmp/bin/perl/script
[platin@h2 platin]$

"bin" 是一個目錄,要加上 "-r" 選項才會複製整個目錄。

rm [-fr] FILE...    刪除檔案

"rm" 的意思是 "remove",用來刪除檔案,"-f" 參數是 "force" 的意思,會問都不問,直接刪除檔案,要刪除目錄的話,則要加上 "-r" 參數。

Linux 系統底下的檔案一旦刪除就非常難以救回 (基本上是沒辦法),使用者刪除檔案之前千萬要三思而後行啊。

mv [-fv] SOURCE... DEST    搬移檔案或目錄

"mv" 的語法跟 "cp" 很像,用來搬移檔案或目錄,搬完後會把原來的檔案刪除,不同之處是 "mv" 其實只更動到檔案的連結資料,所以速度比較快,此外,"mv" 不能在兩個不同的檔案系統之間搬移目錄,要搬目錄的話,一定要先 "cp" 完再自行用 "rm" 刪除。