創建遊戲場(實戰演習)
在創建遊戲場之前,先要復習一個關於鏈接的知識:
ln 命令即可創建硬鏈接,也可以創建符號鏈接。可以用其中一種方法來使用它:
ln file link
創建硬鏈接,和:
ln -s item link
創建符號鏈接,“item” 可以是一個文件或是一個目錄。
硬鏈接
硬鏈接和符號鏈接比起來,硬鏈接是最初 Unix 創建鏈接的方式,而符號鏈接更加現代。在
默認情況下,每個文件有一個硬鏈接,這個硬鏈接給文件起名字。當我們創建一個硬鏈接以後,
就為文件創建了一個額外的目錄條目。硬鏈接有兩個重要局限性:
1. 一個硬鏈接不能關聯它所在文件系統之外的文件。這是說一個鏈接不能關聯與鏈接本身
不在同一個磁盤分區上的文件。
2. 一個硬鏈接不能關聯一個目錄。
一個硬鏈接和文件本身沒有什麽區別。不像符號鏈接,當你列出一個包含硬鏈接的目錄內
容時,你會看到沒有特殊的鏈接指示說明。當一個硬鏈接被刪除時,這個鏈接被刪除,但是文
件本身的內容仍然存在(這是說,它所占的磁盤空間不會被重新分配),直到所有關聯這個文
件的鏈接都刪除掉。知道硬鏈接很重要,因為你可能有時會遇到它們,但現在實際中更喜歡使
用符號鏈接,下一步我們會討論符號鏈接。
符號鏈接
創建符號鏈接是為了克服硬鏈接的局限性。符號鏈接生效,是通過創建一個特殊類型的文
件,這個文件包含一個關聯文件或目錄的文本指針。在這一方面,它們和 Windows 的快捷方
式差不多,當然,符號鏈接早於 Windows 的快捷方式很多年;-)
一個符號鏈接指向一個文件,而且這個符號鏈接本身與其它的符號鏈接幾乎沒有區別。例
如,如果你往一個符號鏈接裏面寫入東西,那麽相關聯的文件也被寫入。然而,當你刪除一個
符號鏈接時,只有這個鏈接被刪除,而不是文件自身。如果刪除這個文件早於文件的符號鏈接,
這個鏈接仍然存在,但是不指向任何東西。在這種情況下,這個鏈接被稱為壞鏈接。在許多實
現中,ls 命令會以不同的顏色展示壞鏈接,比如說紅色,來顯示它們的存在。
關於鏈接的概念,看起來很迷惑,但不要膽怯。我們將要試著練習這些命令,希望,它變
得清晰起來。
創建遊戲場(實戰演習)
下面我們將要做些真正的文件操作,讓我們先建立一個安全地帶,來玩一下文件操作命令。
首先,我們需要一個工作目錄。在我們的主目錄下創建一個叫做 “playground” 的目錄。
再在playground下創建dir1和dir2,一次性創建mkdir -p可以多層目錄一起:
下一步,讓我們得到一些數據到我們的遊戲場中。通過復制一個文件來實現目的。使用 cp
命令,我們從/etc 目錄復制 passwd 文件到當前工作目錄下:
現在,僅僅是為了高興,重復操作復制命令,使用 “-v” 選項(嘮叨),看一個它的作用:
cp 命令再一次執行了復制操作,但是這次顯示了一條簡潔的信息,指明它進行了什麽操
作。註意,cp 沒有警告,就重寫了第一次復制的文件。這是一個案例,cp 假定你知道你的所
作所為。為了得到警示信息,在命令中包含 “-i” 選項。
響應命令提示信息,輸入 “y”,文件就會被重寫,其它的字符(例如,”n”)會導致 cp 命令
不理會文件。
現在,“passwd” 這個名字,看起來不怎麽有趣,這是個遊戲場,所以我們給它改個名字:
讓我們來傳送 fun 文件,通過移動重命名的文件到各個子目錄,然後再把它移回到當前目錄:
創建遊戲場(實戰演習)