<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                此時此刻,我們已經準備好了做些真正的工作!這一章節將會介紹以下命令: > * cp — 復制文件和目錄 > * mv — 移動/重命名文件和目錄 > * mkdir — 創建目錄 > * rm — 刪除文件和目錄 > * ln — 創建硬鏈接和符號鏈接 這五個命令屬于最常使用的 Linux 命令之列。它們用來操作文件和目錄。 現在,坦誠地說,用圖形文件管理器來完成一些由這些命令執行的任務會更容易些。使用文件管理器, 我們可以把文件從一個目錄拖放到另一個目錄,剪貼和粘貼文件,刪除文件等等。那么, 為什么還使用早期的命令行程序呢? 答案是命令行程序,功能強大靈活。雖然圖形文件管理器能輕松地實現簡單的文件操作,但是對于 復雜的文件操作任務,則使用命令行程序比較容易完成。例如,怎樣復制一個目錄下的 HTML 文件 到另一個目錄,但這些 HTML 文件不存在于目標目錄,或者是文件版本新于目標目錄里的文件? 要完成這個任務,使用文件管理器相當難,使用命令行相當容易: ~~~ cp -u *.html destination ~~~ ## 通配符 在開始使用命令之前,我們需要介紹一個使命令行如此強大的 shell 特性。因為 shell 頻繁地使用 文件名,shell 提供了特殊字符來幫助你快速指定一組文件名。這些特殊字符叫做通配符。 使用通配符(也以文件名代換著稱)允許你依據字符類型來選擇文件名。下表列出這些通配符 以及它們所選擇的對象: 表5-1: 通配符 | 通配符 | 意義 | |--------|-------| | * | 匹配任意多個字符(包括零個或一個) | | ? | 匹配任意一個字符(不包括零個) | | [characters] | 匹配任意一個屬于字符集中的字符 | | [!characters] | 匹配任意一個不是字符集中的字符 | | [[:class:]] | 匹配任意一個屬于指定字符類中的字符 | 表5-2列出了最常使用的字符類: 表5-2: 普遍使用的字符類 | 字符類 | 意義 | |--------|-------| | [:alnum:] | 匹配任意一個字母或數字 | | [:alpha:] | 匹配任意一個字母 | | [:digit:] | 匹配任意一個數字 | | [:lower:] | 匹配任意一個小寫字母 | | [:upper] | 匹配任意一個大寫字母 | 借助通配符,為文件名構建非常復雜的選擇標準成為可能。下面是一些類型匹配的范例: 表5-3: 通配符范例 | 模式 | 匹配對象 | |--------|-------| | * | 所有文件 | | g* | 文件名以“g”開頭的文件 | | b*.txt | 以"b"開頭,中間有零個或任意多個字符,并以".txt"結尾的文件 | | Data??? | 以“Data”開頭,其后緊接著3個字符的文件 | | [abc]* | 文件名以"a","b",或"c"開頭的文件 | | BACKUP.[0-9][0-9][0-9] | 以"BACKUP."開頭,并緊接著3個數字的文件 | | [[:upper:]]* | 以大寫字母開頭的文件 | | [![:digit:]]* | 不以數字開頭的文件 | | *[[:lower:]123] | 文件名以小寫字母結尾,或以 “1”,“2”,或 “3” 結尾的文件 | 接受文件名作為參數的任何命令,都可以使用通配符,我們會在第八章更深入的談到這個知識點。 > 字符范圍 > > 如果你用過別的類 Unix 系統的操作環境,或者是讀過這方面的書籍,你可能遇到過[A-Z]或 [a-z]形式的字符范圍表示法。這些都是傳統的 Unix 表示法,并且在早期的 Linux 版本中仍有效。 雖然它們仍然起作用,但是你必須小心地使用它們,因為它們不會產生你期望的輸出結果,除非 你合理地配置它們。從現在開始,你應該避免使用它們,并且用字符類來代替它們。 > > 通配符在 GUI 中也有效 > > 通配符非常重要,不僅因為它們經常用在命令行中,而且一些圖形文件管理器也支持它們。 > > * 在 Nautilus (GNOME 文件管理器)中,可以通過 Edit/Select 模式菜單項來選擇文件。 輸入一個用通配符表示的文件選擇模式后,那么當前所瀏覽的目錄中,所匹配的文件名就會高亮顯示。 > > > * 在 Dolphin 和 Konqueror(KDE 文件管理器)中,可以在地址欄中直接輸入通配符。例如, 如果你想查看目錄 /usr/bin 中,所有以小寫字母 ‘u’ 開頭的文件, 在地址欄中敲入 ‘/usr/bin/u*‘,則 文件管理器會顯示匹配的結果。 > > > > 最初源于命令行界面中的想法,在圖形界面中也適用。這就是使 Linux 桌面系統 如此強大的眾多原因中的一個 ## mkdir - 創建目錄 mkdir 命令是用來創建目錄的。它這樣工作: ~~~ mkdir directory... ~~~ **注意表示法:**?在描述一個命令時(如上所示),當有三個圓點跟在一個命令的參數后面, 這意味著那個參數可以重復,就像這樣: ~~~ mkdir dir1 ~~~ 會創建一個名為”dir1”的目錄,而 ~~~ mkdir dir1 dir2 dir3 ~~~ 會創建三個目錄,名為 dir1, dir2, dir3。 ## cp - 復制文件和目錄 cp 命令,復制文件或者目錄。它有兩種使用方法: ~~~ cp item1 item2 ~~~ 復制單個文件或目錄”item1”到文件或目錄”item2”,和: ~~~ cp item... directory ~~~ 復制多個項目(文件或目錄)到一個目錄下。 ## 有用的選項和實例 這里列舉了 cp 命令一些有用的選項(短選項和等效的長選項): 表5-4: cp 選項 | 選項 | 意義 | |--------|-------| | -a, --archive | 復制文件和目錄,以及它們的屬性,包括所有權和權限。 通常,復本具有用戶所操作文件的默認屬性。 | | -i, --interactive | 在重寫已存在文件之前,提示用戶確認。如果這個選項不指定, cp 命令會默認重寫文件。 | | -r, --recursive | 遞歸地復制目錄及目錄中的內容。當復制目錄時, 需要這個選項(或者-a 選項)。 | | -u, --update | 當把文件從一個目錄復制到另一個目錄時,僅復制 目標目錄中不存在的文件,或者是文件內容新于目標目錄中已經存在的文件。 | | -v, --verbose | 顯示翔實的命令操作信息 | 表5-5: cp 實例 | 命令 | 運行結果 | |--------|-------| | cp file1 file2 | 復制文件 file1 內容到文件 file2。如果 file2 已經存在, file2 的內容會被 file1 的內容重寫。如果 file2 不存在,則會創建 file2。 | | cp -i file1 file2 | 這條命令和上面的命令一樣,除了如果文件 file2 存在的話,在文件 file2 被重寫之前, 會提示用戶確認信息。 | | cp file1 file2 dir1 | 復制文件 file1 和文件 file2 到目錄 dir1。目錄 dir1 必須存在。 | | cp dir1/* dir2 | 使用一個通配符,在目錄 dir1 中的所有文件都被復制到目錄 dir2 中。 dir2 必須已經存在。 | | cp -r dir1 dir2 | 復制目錄 dir1 中的內容到目錄 dir2。如果目錄 dir2 不存在, 創建目錄 dir2,操作完成后,目錄 dir2 中的內容和 dir1 中的一樣。 如果目錄 dir2 存在,則目錄 dir1 (和目錄中的內容)將會被復制到 dir2 中。 | ## mv - 移動和重命名文件 mv 命令可以執行文件移動和文件命名任務,這依賴于你怎樣使用它。任何一種 情況下,完成操作之后,原來的文件名不再存在。mv 使用方法與 cp 很相像: ~~~ mv item1 item2 ~~~ 把文件或目錄 “item1” 移動或重命名為 “item2”, 或者: ~~~ mv item... directory ~~~ 把一個或多個條目從一個目錄移動到另一個目錄中。 ## 有用的選項和實例 mv 與 cp 共享了很多一樣的選項: 表5-6: mv 選項 | 選項 | 意義 | |--------|-------| | -i --interactive | 在重寫一個已經存在的文件之前,提示用戶確認信息。?**如果不指定這個選項,mv 命令會默認重寫文件內容。** | | -u --update | 當把文件從一個目錄移動另一個目錄時,只是移動不存在的文件, 或者文件內容新于目標目錄相對應文件的內容。 | | -v --verbose | 當操作 mv 命令時,顯示翔實的操作信息。 | 表5-7: mv 實例 ||| |--------|-------| | mv file1 file2 | 移動 file1 到 file2。**如果 file2 存在,它的內容會被 file1 的內容重寫。?**如果 file2 不存在,則創建 file2。**?每種情況下,file1 不再存在。** | | mv -i file1 file2 | 除了如果 file2 存在的話,在 file2 被重寫之前,用戶會得到 提示信息外,這個和上面的選項一樣。 | | mv file1 file2 dir1 | 移動 file1 和 file2 到目錄 dir1 中。dir1 必須已經存在。 | | mv dir1 dir2 | 如果目錄 dir2 不存在,創建目錄 dir2,并且移動目錄 dir1 的內容到 目錄 dir2 中,同時刪除目錄 dir1。如果目錄 dir2 存在,移動目錄 dir1(及它的內容)到目錄 dir2。 | ### rm - 刪除文件和目錄 rm 命令用來移除(刪除)文件和目錄: ~~~ rm item... ~~~ “item”代表一個或多個文件或目錄。 ### 有用的選項和實例 下表是一些普遍使用的 rm 選項: 表5-8: rm 選項 | 選項 | 意義 | |--------|-------| | -i, --interactive | 在刪除已存在的文件前,提示用戶確認信息。?**如果不指定這個選項,rm 會默默地刪除文件** | | -r, --recursive | 遞歸地刪除文件,這意味著,如果要刪除一個目錄,而此目錄 又包含子目錄,那么子目錄也會被刪除。要刪除一個目錄,必須指定這個選項。 | | -f, --force | 忽視不存在的文件,不顯示提示信息。這選項顛覆了“--interactive”選項。 | | -v, --verbose | 在執行 rm 命令時,顯示翔實的操作信息。 | 表5-9: rm 實例 | 命令 | 運行結果 | |--------|-------| | rm file1 | 默默地刪除文件 | | rm -i file1 | 除了在刪除文件之前,提示用戶確認信息之外,和上面的命令作用一樣。 | | rm -r file1 dir1 | 刪除文件 file1, 目錄 dir1,及 dir1 中的內容。 | | rm -rf file1 dir1 | 同上,除了如果文件 file1,或目錄 dir1 不存在的話,rm 仍會繼續執行。 | > 小心 rm! > > 類 Unix 的操作系統,比如說 Linux,沒有復原命令。一旦你用 rm 刪除了一些東西, 它就消失了。Linux 假定你很聰明,你知道你在做什么。 > > 尤其要小心通配符。思考一下這個經典的例子。假如說,你只想刪除一個目錄中的 HTML 文件。輸入: > > rm *.html > > 這是正確的,如果你不小心在 “*” 和 “.html” 之間多輸入了一個空格,就像這樣: > > rm * .html > > 這個 rm 命令會刪除目錄中的所有文件,還會抱怨沒有文件叫做 “.html”。 > > 小貼士。?無論什么時候,rm 命令用到通配符(除了仔細檢查輸入的內容外!), 用 ls 命令來測試通配符。這會讓你看到要刪除的文件列表。然后按下上箭頭按鍵,重新調用 剛剛執行的命令,用 rm 替換 ls。 ## ln — 創建鏈接 ln 命令即可創建硬鏈接,也可以創建符號鏈接。可以用其中一種方法來使用它: ~~~ ln file link ~~~ 創建硬鏈接,和: ~~~ ln -s item link ~~~ 創建符號鏈接,”item” 可以是一個文件或是一個目錄。 ## 硬鏈接 硬鏈接和符號鏈接比起來,硬鏈接是最初 Unix 創建鏈接的方式,而符號鏈接更加現代。 在默認情況下,每個文件有一個硬鏈接,這個硬鏈接給文件起名字。當我們創建一個 硬鏈接以后,就為文件創建了一個額外的目錄條目。硬鏈接有兩個重要局限性: 1. 一個硬鏈接不能關聯它所在文件系統之外的文件。這是說一個鏈接不能關聯 與鏈接本身不在同一個磁盤分區上的文件。 2. 一個硬鏈接不能關聯一個目錄。 一個硬鏈接和文件本身沒有什么區別。不像符號鏈接,當你列出一個包含硬鏈接的目錄 內容時,你會看到沒有特殊的鏈接指示說明。當一個硬鏈接被刪除時,這個鏈接 被刪除,但是文件本身的內容仍然存在(這是說,它所占的磁盤空間不會被重新分配), 直到所有關聯這個文件的鏈接都刪除掉。知道硬鏈接很重要,因為你可能有時 會遇到它們,但現在實際中更喜歡使用符號鏈接,下一步我們會討論符號鏈接。 ## 符號鏈接 創建符號鏈接是為了克服硬鏈接的局限性。符號鏈接生效,是通過創建一個 特殊類型的文件,這個文件包含一個關聯文件或目錄的文本指針。在這一方面, 它們和 Windows 的快捷方式差不多,當然,符號鏈接早于 Windows 的快捷方式 很多年;-) 一個符號鏈接指向一個文件,而且這個符號鏈接本身與其它的符號鏈接幾乎沒有區別。 例如,如果你往一個符號鏈接里面寫入東西,那么相關聯的文件也被寫入。然而, 當你刪除一個符號鏈接時,只有這個鏈接被刪除,而不是文件自身。如果先于符號鏈接 刪除文件,這個鏈接仍然存在,但是不指向任何東西。在這種情況下,這個鏈接被稱為 壞鏈接。在許多實現中,ls 命令會以不同的顏色展示壞鏈接,比如說紅色,來顯示它們 的存在。 關于鏈接的概念,看起來很迷惑,但不要膽怯。我們將要試著練習 這些命令,希望,它變得清晰起來。 ## 創建游戲場(實戰演習) 下面我們將要做些真正的文件操作,讓我們先建立一個安全地帶, 來玩一下文件操作命令。首先,我們需要一個工作目錄。在我們的 家目錄下創建一個叫做“playground”的目錄。 ## 創建目錄 mkdir 命令被用來創建目錄。首先確定我們在我們的家目錄下,來創建 playground 目錄, 然后創建這個新目錄: ~~~ [me@linuxbox ~]$ cd [me@linuxbox ~]$ mkdir playground ~~~ 為了讓我們的游戲場更加有趣,在 playground 目錄下創建一對目錄 ,分別叫做 “dir1” 和 “dir2”。更改我們的當前工作目錄到 playground,然后 執行 mkdir 命令: ~~~ [me@linuxbox ~]$ cd playground [me@linuxbox playground]$ mkdir dir1 dir2 ~~~ 注意到 mkdir 命令可以接受多個參數,它允許我們用一個命令來創建這兩個目錄。 ##  復制文件 下一步,讓我們得到一些數據到我們的游戲場中。通過復制一個文件來實現目的。 使用 cp 命令,我們從 /etc 目錄復制 passwd 文件到當前工作目錄下: ~~~ [me@linuxbox playground]$ cp /etc/passwd . ~~~ 注意:我們怎樣使用當前工作目錄的快捷方式,命令末尾的單個圓點。如果我們執行 ls 命令, 可以看到我們的文件: ~~~ [me@linuxbox playground]$ ls -l total 12 drwxrwxr-x 2 me me 4096 2008-01-10 16:40 dir1 drwxrwxr-x 2 me me 4096 2008-01-10 16:40 dir2 -rw-r--r-- 1 me me 1650 2008-01-10 16:07 passwd ~~~ 現在,僅僅是為了高興,重復操作復制命令,使用”-v”選項(嘮叨),看一個它的作用: ~~~ [me@linuxbox playground]$ cp -v /etc/passwd . `/etc/passwd' -> `./passwd' ~~~ cp 命令再一次執行了復制操作,但是這次顯示了一條簡潔的信息,指明它 進行了什么操作。注意,cp 沒有警告,就重寫了第一次復制的文件。這是一個案例, cp 假定你知道你的所作所為。為了得到警示信息,在命令中包含”-i”選項: ~~~ [me@linuxbox playground]$ cp -i /etc/passwd . cp: overwrite `./passwd'? ~~~ 響應命令提示信息,輸入”y”,文件就會被重寫,其它的字符(例如,”n”)會導致 cp 命令不理會文件。 ## 移動和重命名文件 現在,”passwd” 這個名字,看起來不怎么有趣,這是個游戲場,所以我們給它改個名字: ~~~ [me@linuxbox playground]$ mv passwd fun ~~~ 讓我們來傳送 fun 文件,通過移動重命名的文件到各個子目錄, 然后再把它移回到當前目錄: ~~~ [me@linuxbox playground]$ mv fun dir1 ~~~ 首先,把 fun 文件移動目錄 dir1 中,然后: ~~~ [me@linuxbox playground]$ mv dir1/fun dir2 ~~~ 再把 fun 文件從 dir1 移到目錄 dir2, 然后: ~~~ [me@linuxbox playground]$ mv dir2/fun . ~~~ 最后,再把 fun 文件帶回到當前工作目錄。下一步,來看看移動目錄的效果。 首先,我們先移動我們的數據文件到 dir1 目錄: ~~~ [me@linuxbox playground]$ mv fun dir1 ~~~ 然后移動 dir1到 dir2目錄,用 ls 來確認執行結果: ~~~ [me@linuxbox playground]$ mv dir1 dir2 [me@linuxbox playground]$ ls -l dir2 total 4 drwxrwxr-x 2 me me 4096 2008-01-11 06:06 dir1 [me@linuxbox playground]$ ls -l dir2/dir1 total 4 -rw-r--r-- 1 me me 1650 2008-01-10 16:33 fun ~~~ 注意:因為目錄 dir2 已經存在,mv 命令移動 dir1 到 dir2 目錄。如果 dir2 不存在, mv 會重新命名 dir1 為 dir2。最后,把所有的東西放回原處。 ~~~ [me@linuxbox playground]$ mv dir2/dir1 . [me@linuxbox playground]$ mv dir1/fun . ~~~ ## 創建硬鏈接 現在,我們試著創建鏈接。首先是硬鏈接。我們創建一些關聯我們 數據文件的鏈接: ~~~ [me@linuxbox playground]$ ln fun fun-hard [me@linuxbox playground]$ ln fun dir1/fun-hard [me@linuxbox playground]$ ln fun dir2/fun-hard ~~~ 所以現在,我們有四個文件”fun”的實例。看一下目錄 playground 中的內容: ~~~ [me@linuxbox playground]$ ls -l total 16 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir1 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir2 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard ~~~ 注意到一件事,列表中,文件 fun 和 fun-hard 的第二個字段是”4”,這個數字 是文件”fun”的硬鏈接數目。你要記得一個文件至少有一個硬鏈接,因為文件 名就是由鏈接創建的。所以,我們怎樣知道實際上 fun 和 fun-hard 是一樣的文件呢? 在這個例子里,ls 不是很有用。雖然我們能夠看到 fun 和 fun-hard 文件大小一樣 (第五字段),但我們的列表沒有提供可靠的信息來確定(這兩個文件一樣)。 為了解決這個問題,我們更深入的研究一下。 當考慮到硬鏈接的時候,我們可以假設文件由兩部分組成:包含文件內容的數據部分和持有文件名的名字部分 ,這將有助于我們理解這個概念。當我們創建文件硬鏈接的時候,實際上是為文件創建了額外的名字部分, 并且這些名字都關系到相同的數據部分。這時系統會分配一連串的磁盤給所謂的索引節點,然后索引節點與文 件名字部分相關聯。因此每一個硬鏈接都關系到一個具體的包含文件內容的索引節點。 ls 命令有一種方法,來展示(文件索引節點)的信息。在命令中加上”-i”選項: ~~~ [me@linuxbox playground]$ ls -li total 16 12353539 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir1 12353540 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir2 12353538 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun 12353538 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard ~~~ 在這個版本的列表中,第一字段表示文件索引節點號,正如我們所見到的, fun 和 fun-hard 共享一樣的索引節點號,這就證實這兩個文件是一樣的文件。 ## 創建符號鏈接 建立符號鏈接的目的是為了克服硬鏈接的兩個缺點:硬鏈接不能跨越物理設備, 硬鏈接不能關聯目錄,只能是文件。符號鏈接是文件的特殊類型,它包含一個指向 目標文件或目錄的文本指針。 符號鏈接的建立過程相似于創建硬鏈接: ~~~ [me@linuxbox playground]$ ln -s fun fun-sym [me@linuxbox playground]$ ln -s ../fun dir1/fun-sym [me@linuxbox playground]$ ln -s ../fun dir2/fun-sym ~~~ 第一個實例相當直接,在 ln 命令中,簡單地加上”-s”選項就可以創建一個符號鏈接, 而不是一個硬鏈接。下面兩個例子又是怎樣呢? 記住,當我們創建一個符號鏈接 的時候,會建立一個目標文件在哪里和符號鏈接有關聯的文本描述。如果我們看看 ls 命令的輸出結果,比較容易理解。 ~~~ [me@linuxbox playground]$ ls -l dir1 total 4 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard lrwxrwxrwx 1 me me 6 2008-01-15 15:17 fun-sym -> ../fun ~~~ 目錄 dir1 中,fun-sym 的列表說明了它是一個符號鏈接,通過在第一字段中的首字符”l” 可知,并且它還指向”../fun”,也是正確的。相對于 fun-sym 的存儲位置,fun 在它的 上一個目錄。同時注意,符號鏈接文件的長度是6,這是字符串”../fun”所包含的字符數, 而不是符號鏈接所指向的文件長度。 當建立符號鏈接時,你即可以使用絕對路徑名: ~~~ ln -s /home/me/playground/fun dir1/fun-sym ~~~ 也可用相對路徑名,正如前面例題所展示的。使用相對路徑名更令人滿意, 因為它允許一個包含符號鏈接的目錄重命名或移動,而不會破壞鏈接。 除了普通文件,符號鏈接也能關聯目錄: ~~~ [me@linuxbox playground]$ ln -s dir1 dir1-sym [me@linuxbox playground]$ ls -l total 16 ...省略 ~~~ ## 移動文件和目錄 正如我們之前討論的,rm 命令被用來刪除文件和目錄。我們將要使用它 來清理一下我們的游戲場。首先,刪除一個硬鏈接: ~~~ [me@linuxbox playground]$ rm fun-hard [me@linuxbox playground]$ ls -l total 12 ...省略 ~~~ 結果不出所料。文件 fun-hard 消失了,文件 fun 的鏈接數從4減到3,正如 目錄列表第二字段所示。下一步,我們會刪除文件 fun,僅為了娛樂,我們會包含”-i” 選項,看一個它的作用: ~~~ [me@linuxbox playground]$ rm -i fun rm: remove regular file `fun'? ~~~ 在提示符下輸入”y”,刪除文件。讓我們看一下 ls 的輸出結果。注意,fun-sym 發生了 什么事? 因為它是一個符號鏈接,指向已經不存在的文件,鏈接已經壞了: ~~~ [me@linuxbox playground]$ ls -l total 8 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir1 lrwxrwxrwx 1 me me 4 2008-01-16 14:45 dir1-sym -> dir1 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir2 lrwxrwxrwx 1 me me 3 2008-01-15 15:15 fun-sym -> fun ~~~ 大多數 Linux 的發行版本配置 ls 顯示損壞的鏈接。在 Fedora 系統中,壞的鏈接以閃爍的 紅色文本顯示!損壞鏈接的出現,并不危險,但是相當混亂。如果我們試著使用 損壞的鏈接,會看到以下情況: ~~~ [me@linuxbox playground]$ less fun-sym fun-sym: No such file or directory ~~~ 稍微清理一下現場。刪除符號鏈接: ~~~ [me@linuxbox playground]$ rm fun-sym dir1-sym [me@linuxbox playground]$ ls -l total 8 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir1 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir2 ~~~ 對于符號鏈接,有一點值得記住,執行的大多數文件操作是針對鏈接的對象,而不是鏈接本身。 而 rm 命令是個特例。當你刪除鏈接的時候,刪除鏈接本身,而不是鏈接的對象。 最后,我們將刪除我們的游戲場。為了完成這個工作,我們將返回到 我們的家目錄,然后用 rm 命令加上選項(-r),來刪除目錄 playground, 和目錄下的所有內容,包括子目錄: ~~~ [me@linuxbox playground]$ cd [me@linuxbox ~]$ rm -r playground ~~~ > 用 GUI 來創建符號鏈接 > > 文件管理器 GNOME 和 KDE 都提供了一個簡單而且自動化的方法來創建符號鏈接。 在 GNOME 里面,當拖動文件時,同時按下 Ctrl+Shift 按鍵會創建一個鏈接,而不是 復制(或移動)文件。在 KDE 中,無論什么時候放下一個文件,會彈出一個小菜單, 這個菜單會提供復制,移動,或創建鏈接文件選項。 ## 總結 在這一章中,我們已經研究了許多基礎知識。我們得花費一些時間來全面的理解。 反復練習 playground 例題,直到你覺得它有意義。能夠良好的理解基本文件操作 命令和通配符,非常重要。空閑時,通過添加文件和目錄來拓展 playground 練習, 使用通配符來為各種各樣的操作命令指定文件。關于鏈接的概念,在剛開始接觸 時會覺得有點迷惑,花些時間來學習它們是怎樣工作的。它們能成為真正的救星。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看