<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 6.2 文件與目錄管理 談了談目錄與路徑之后,再來討論一下關于文件的一些基本管理吧!文件與目錄的管理上,不外乎“顯示屬性”、 “拷貝”、“刪除文件”及“移動文件或目錄”等等,由于文件與目錄的管理在 Linux 當中是很重要的, 尤其是每個人自己主文件夾的數據也都需要注意管理!所以我們來談一談有關文件與目錄的一些基礎管理部分吧! ### 6.2.1 文件與目錄的檢視: ls ``` [root@study ~]# ls [-aAdfFhilnrRSt] 文件名或目錄名稱.. [root@study ~]# ls [--color={never,auto,always}] 文件名或目錄名稱.. [root@study ~]# ls [--full-time] 文件名或目錄名稱.. 選項與參數: -a :全部的文件,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用) -A :全部的文件,連同隱藏文件,但不包括 . 與 .. 這兩個目錄 -d :僅列出目錄本身,而不是列出目錄內的文件數據(常用) -f :直接列出結果,而不進行排序 (ls 默認會以文件名排序!) -F :根據文件、目錄等信息,給予附加數據結構,例如: *:代表可可執行文件; /:代表目錄; =:代表 socket 文件; &#124;:代表 FIFO 文件; -h :將文件大小以人類較易讀的方式(例如 GB, KB 等等)列出來; -i :列出 inode 號碼,inode 的意義下一章將會介紹; -l :長數據串行出,包含文件的屬性與權限等等數據;(常用) -n :列出 UID 與 GID 而非使用者與群組的名稱 (UID與GID會在帳號管理提到!) -r :將排序結果反向輸出,例如:原本文件名由小到大,反向則為由大到小; -R :連同子目錄內容一起列出來,等于該目錄下的所有文件都會顯示出來; -S :以文件大小大小排序,而不是用文件名排序; -t :依時間排序,而不是用文件名。 --color=never :不要依據文件特性給予顏色顯示; --color=always :顯示顏色 --color=auto :讓系統自行依據設置來判斷是否給予顏色 --full-time :以完整時間模式 (包含年、月、日、時、分) 輸出 --time={atime,ctime} :輸出 access 時間或改變權限屬性時間 (ctime) 而非內容變更時間 (modification time) ``` 在Linux系統當中,這個 ls 指令可能是最常被執行的吧!因為我們隨時都要知道文件或者是目錄的相關信息啊~ 不過,我們Linux的文件所記錄的信息實在是太多了,ls 沒有需要全部都列出來呢~ 所以,當你只有下達 ls 時,默認顯示的只有:非隱藏文件的文件名、 以文件名進行排序及文件名代表的顏色顯示如此而已。舉例來說, 你下達“ ls /etc ”之后,只有經過排序的文件名以及以藍色顯示目錄及白色顯示一般文件,如此而已。 那如果我還想要加入其他的顯示信息時,可以加入上頭提到的那些有用的選項呢~ 舉例來說,我們之前一直用到的 -l 這個長串顯示數據內容,以及將隱藏文件也一起列示出來的 -a 選項等等。 下面則是一些常用的范例,實際試做看看: ``` 范例一:將主文件夾下的所有文件列出來(含屬性與隱藏文件) [root@study ~]# ls -al ~ total 56 dr-xr-x---. 5 root root 4096 Jun 4 19:49 . dr-xr-xr-x. 17 root root 4096 May 4 17:56 .. -rw-------. 1 root root 1816 May 4 17:57 anaconda-ks.cfg -rw-------. 1 root root 6798 Jun 4 19:53 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-rw-rw-. 1 root root 176 Dec 29 2013 .bashrc -rw-r--r--. 1 root root 176 Jun 3 00:04 .bashrc_test drwx------. 4 root root 29 May 6 00:14 .cache drwxr-xr-x. 3 root root 17 May 6 00:14 .config # 這個時候你會看到以 . 為開頭的幾個文件,以及目錄檔 (.) (..) .config 等等, # 不過,目錄檔文件名都是以深藍色顯示,有點不容易看清楚就是了。 范例二:承上題,不顯示顏色,但在文件名末顯示出該文件名代表的類型(type) [root@study ~]# ls -alF --color=never ~ total 56 dr-xr-x---. 5 root root 4096 Jun 4 19:49 ./ dr-xr-xr-x. 17 root root 4096 May 4 17:56 ../ -rw-------. 1 root root 1816 May 4 17:57 anaconda-ks.cfg -rw-------. 1 root root 6798 Jun 4 19:53 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-rw-rw-. 1 root root 176 Dec 29 2013 .bashrc -rw-r--r--. 1 root root 176 Jun 3 00:04 .bashrc_test drwx------. 4 root root 29 May 6 00:14 .cache/ drwxr-xr-x. 3 root root 17 May 6 00:14 .config/ # 注意看到顯示結果的第一行,嘿嘿~知道為何我們會下達類似 ./command # 之類的指令了吧?因為 ./ 代表的是“目前目錄下”的意思啊!至于什么是 FIFO/Socket ? # 請參考前一章節的介紹啊!另外,那個.bashrc 時間僅寫2013,能否知道詳細時間? 范例三:完整的呈現文件的修改時間 (modification time) [root@study ~]# ls -al --full-time ~ total 56 dr-xr-x---. 5 root root 4096 2015-06-04 19:49:54.520684829 +0800 . dr-xr-xr-x. 17 root root 4096 2015-05-04 17:56:38.888000000 +0800 .. -rw-------. 1 root root 1816 2015-05-04 17:57:02.326000000 +0800 anaconda-ks.cfg -rw-------. 1 root root 6798 2015-06-04 19:53:41.451684829 +0800 .bash_history -rw-r--r--. 1 root root 18 2013-12-29 10:26:31.000000000 +0800 .bash_logout -rw-r--r--. 1 root root 176 2013-12-29 10:26:31.000000000 +0800 .bash_profile -rw-rw-rw-. 1 root root 176 2013-12-29 10:26:31.000000000 +0800 .bashrc -rw-r--r--. 1 root root 176 2015-06-03 00:04:16.916684829 +0800 .bashrc_test drwx------. 4 root root 29 2015-05-06 00:14:56.960764950 +0800 .cache drwxr-xr-x. 3 root root 17 2015-05-06 00:14:56.975764950 +0800 .config # 請仔細看,上面的“時間”字段變了喔!變成較為完整的格式。 # 一般來說, ls -al 僅列出目前短格式的時間,有時不會列出年份, # 借由 --full-time 可以查閱到比較正確的完整時間格式啊! ``` 其實 ls 的用法還有很多,包括查閱文件所在 i-node 號碼的 ls -i 選項,以及用來進行文件排序的 -S 選項,還有用來查閱不同時間的動作的 --time=atime 等選項(更多時間說明請參考本章后面[touch](../Text/index.html#touch)的說明)。而這些選項的存在都是因為 Linux 文件系統記錄了很多有用的信息的緣故。那么 Linux 的文件系統中,這些與權限、屬性有關的數據放在哪里呢? 放在 i-node 里面。關于這部分,我們會在下一章繼續為你作比較深入的介紹啊! 無論如何, ls 最常被使用到的功能還是那個 -l 的選項,為此,很多 distribution 在默認的情況中, 已經將 ll (L 的小寫) 設置成為 ls -l 的意思了!其實,那個功能是 [Bash shell](../Text/index.html) 的 [alias](../Text/index.html#alias) 功能呢~也就是說,我們直接輸入 ll 就等于是輸入 ls -l 是一樣的~關于這部分,我們會在后續 bash shell 時再次的強調滴~ ### 6.2.2 復制、刪除與移動: cp, rm, mv 要復制文件,請使用 cp (copy) 這個指令即可~不過, cp 這個指令的用途可多了~ 除了單純的復制之外,還可以創建鏈接文件 (就是捷徑啰),比對兩文件的新舊而予以更新, 以及復制整個目錄等等的功能呢!至于移動目錄與文件,則使用 mv (move), 這個指令也可以直接拿來作更名 (rename) 的動作喔!至于移除嗎?那就是 rm (remove) 這個指令啰~下面我們就來瞧一瞧先~ * cp (復制文件或目錄) ``` [root@study ~]# cp [-adfilprsu] 來源文件(source) 目標文件(destination) [root@study ~]# cp [options] source1 source2 source3 .... directory 選項與參數: -a :相當于 -dr --preserve=all 的意思,至于 dr 請參考下列說明;(常用) -d :若來源文件為鏈接文件的屬性(link file),則復制鏈接文件屬性而非文件本身; -f :為強制(force)的意思,若目標文件已經存在且無法打開,則移除后再嘗試一次; -i :若目標文件(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用) -l :進行硬式鏈接(hard link)的鏈接文件創建,而非復制文件本身; -p :連同文件的屬性(權限、用戶、時間)一起復制過去,而非使用默認屬性(備份常用); -r :遞回持續復制,用于目錄的復制行為;(常用) -s :復制成為符號鏈接文件 (symbolic link),亦即“捷徑”文件; -u :destination 比 source 舊才更新 destination,或 destination 不存在的情況下才復制。 --preserve=all :除了 -p 的權限相關參數外,還加入 SELinux 的屬性, links, xattr 等也復制了。 最后需要注意的,如果來源文件有兩個以上,則最后一個目的文件一定要是“目錄”才行! ``` 復制(cp)這個指令是非常重要的,不同身份者執行這個指令會有不同的結果產生,尤其是那個-a, -p的選項, 對于不同身份來說,差異則非常的大!下面的練習中,有的身份為root有的身份為一般帳號 (在我這里用 dmtsai 這個帳號), 練習時請特別注意身份的差別喔!好!開始來做復制的練習與觀察: ``` 范例一:用root身份,將主文件夾下的 .bashrc 復制到 /tmp 下,并更名為 bashrc [root@study ~]# cp ~/.bashrc /tmp/bashrc [root@study ~]# cp -i ~/.bashrc /tmp/bashrc cp: overwrite `/tmp/bashrc'? n &lt;==n不覆蓋,y為覆蓋 # 重復作兩次動作,由于 /tmp 下面已經存在 bashrc 了,加上 -i 選項后, # 則在覆蓋前會詢問使用者是否確定!可以按下 n 或者 y 來二次確認呢! 范例二:變換目錄到/tmp,并將/var/log/wtmp復制到/tmp且觀察屬性: [root@study ~]# cd /tmp [root@study tmp]# cp /var/log/wtmp . &lt;==想要復制到目前的目錄,最后的 . 不要忘 [root@study tmp]# ls -l /var/log/wtmp wtmp -rw-rw-r--. 1 root utmp 28416 Jun 11 18:56 /var/log/wtmp -rw-r--r--. 1 root root 28416 Jun 11 19:01 wtmp # 注意上面的特殊字體,在不加任何選項的情況下,文件的某些屬性/權限會改變; # 這是個很重要的特性!要注意喔!還有,連文件創建的時間也不一樣了! # 那如果你想要將文件的所有特性都一起復制過來該怎辦?可以加上 -a 喔!如下所示: [root@study tmp]# cp -a /var/log/wtmp wtmp_2 [root@study tmp]# ls -l /var/log/wtmp wtmp_2 -rw-rw-r--. 1 root utmp 28416 Jun 11 18:56 /var/log/wtmp -rw-rw-r--. 1 root utmp 28416 Jun 11 18:56 wtmp_2 # 瞭了吧!整個數據特性完全一模一樣ㄟ!真是不賴~這就是 -a 的特性! ``` 這個 cp 的功能很多,由于我們常常會進行一些數據的復制,所以也會常常用到這個指令的。 一般來說,我們如果去復制別人的數據 (當然,該文件你必須要有 read 的權限才行啊! ^_^) 時, 總是希望復制到的數據最后是我們自己的,所以,在默認的條件中, cp 的來源文件與目的文件的權限是不同的,目的文件的擁有者通常會是指令操作者本身。舉例來說, 上面的范例二中,由于我是 root 的身份,因此復制過來的文件擁有者與群組就改變成為 root 所有了! 這樣說,可以明白嗎?^_^ 由于具有這個特性,因此當我們在進行備份的時候,某些需要特別注意的特殊權限文件, 例如密碼檔 (/etc/shadow) 以及一些配置文件,就不能直接以 cp 來復制,而必須要加上 -a 或者是 -p 等等可以完整復制文件權限的選項才行!另外,如果你想要復制文件給其他的使用者, 也必須要注意到文件的權限(包含讀、寫、執行以及文件擁有者等等), 否則,其他人還是無法針對你給予的文件進行修訂的動作喔!注意注意! ``` 范例三:復制 /etc/ 這個目錄下的所有內容到 /tmp 下面 [root@study tmp]# cp /etc/ /tmp cp: omitting directory `/etc' &lt;== 如果是目錄則不能直接復制,要加上 -r 的選項 [root@study tmp]# cp -r /etc/ /tmp # 還是要再次的強調喔! -r 是可以復制目錄,但是,文件與目錄的權限可能會被改變 # 所以,也可以利用“ cp -a /etc /tmp ”來下達指令喔!尤其是在備份的情況下! 范例四:將范例一復制的 bashrc 創建一個鏈接文件 (symbolic link) [root@study tmp]# ls -l bashrc -rw-r--r--. 1 root root 176 Jun 11 19:01 bashrc &lt;==先觀察一下文件情況 [root@study tmp]# cp -s bashrc bashrc_slink [root@study tmp]# cp -l bashrc bashrc_hlink [root@study tmp]# ls -l bashrc* -rw-r--r--. 2 root root 176 Jun 11 19:01 bashrc &lt;==與原始文件不太一樣了! -rw-r--r--. 2 root root 176 Jun 11 19:01 bashrc_hlink lrwxrwxrwx. 1 root root 6 Jun 11 19:06 bashrc_slink -&gt; bashrc ``` 范例四可有趣了!使用 -l 及 -s 都會創建所謂的鏈接文件(link file),但是這兩種鏈接文件卻有不一樣的情況。這是怎么一回事啊? 那個 -l 就是所謂的實體鏈接(hard link),至于 -s 則是符號鏈接(symbolic link), 簡單來說,bashrc_slink 是一個“捷徑”,這個捷徑會鏈接到bashrc去!所以你會看到文件名右側會有個指向(-&gt;)的符號! 至于bashrc_hlink文件與bashrc的屬性與權限完全一模一樣,與尚未進行鏈接前的差異則是第二欄的link數由1變成2了! 鳥哥這里先不介紹實體鏈接,因為實體鏈接涉及 i-node 的相關知識,我們下一章談到文件系統(filesystem)時再來討論這個問題。 ``` 范例五:若 ~/.bashrc 比 /tmp/bashrc 新才復制過來 [root@study tmp]# cp -u ~/.bashrc /tmp/bashrc # 這個 -u 的特性,是在目標文件與來源文件有差異時,才會復制的。 # 所以,比較常被用于“備份”的工作當中喔! ^_^ 范例六:將范例四造成的 bashrc_slink 復制成為 bashrc_slink_1 與bashrc_slink_2 [root@study tmp]# cp bashrc_slink bashrc_slink_1 [root@study tmp]# cp -d bashrc_slink bashrc_slink_2 [root@study tmp]# ls -l bashrc bashrc_slink* -rw-r--r--. 2 root root 176 Jun 11 19:01 bashrc lrwxrwxrwx. 1 root root 6 Jun 11 19:06 bashrc_slink -&gt; bashrc -rw-r--r--. 1 root root 176 Jun 11 19:09 bashrc_slink_1 &lt;==與原始文件相同 lrwxrwxrwx. 1 root root 6 Jun 11 19:10 bashrc_slink_2 -&gt; bashrc &lt;==是鏈接文件! # 這個例子也是很有趣喔!原本復制的是鏈接文件,但是卻將鏈接文件的實際文件復制過來了 # 也就是說,如果沒有加上任何選項時,cp復制的是原始文件,而非鏈接文件的屬性! # 若要復制鏈接文件的屬性,就得要使用 -d 的選項了!如 bashrc_slink_2 所示。 范例七:將主文件夾的 .bashrc 及 .bash_history 復制到 /tmp 下面 [root@study tmp]# cp ~/.bashrc ~/.bash_history /tmp # 可以將多個數據一次復制到同一個目錄去!最后面一定是目錄! ``` 例題:你能否使用 dmtsai 的身份,完整的復制/var/log/wtmp文件到/tmp下面,并更名為dmtsai_wtmp呢?答:實際做看看的結果如下: ``` [dmtsai@study ~]$ cp -a /var/log/wtmp /tmp/dmtsai_wtmp [dmtsai@study ~]$ ls -l /var/log/wtmp /tmp/dmtsai_wtmp -rw-rw-r--. 1 dmtsai dmtsai 28416 6月 11 18:56 /tmp/dmtsai_wtmp -rw-rw-r--. 1 root utmp 28416 6月 11 18:56 /var/log/wtmp ``` 由于 dmtsai 的身份并不能隨意修改文件的擁有者與群組,因此雖然能夠復制wtmp的相關權限與時間等屬性, 但是與擁有者、群組相關的,原本 dmtsai 身份無法進行的動作,即使加上 -a 選項,也是無法達成完整復制權限的! 總之,由于 cp 有種種的文件屬性與權限的特性,所以,在復制時,你必須要清楚的了解到: * 是否需要完整的保留來源文件的信息? * 來源文件是否為鏈接文件 (symbolic link file)? * 來源文件是否為特殊的文件,例如 FIFO, socket 等? * 來源文件是否為目錄? * rm (移除文件或目錄) ``` [root@study ~]# rm [-fir] 文件或目錄 選項與參數: -f :就是 force 的意思,忽略不存在的文件,不會出現警告訊息; -i :互動模式,在刪除前會詢問使用者是否動作 -r :遞回刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!! 范例一:將剛剛在 cp 的范例中創建的 bashrc 刪除掉! [root@study ~]# cd /tmp [root@study tmp]# rm -i bashrc rm: remove regular file `bashrc'? y # 如果加上 -i 的選項就會主動詢問喔,避免你刪除到錯誤的文件名! 范例二:通過萬用字符*的幫忙,將/tmp下面開頭為bashrc的文件名通通刪除: [root@study tmp]# rm -i bashrc* # 注意那個星號,代表的是 0 到無窮多個任意字符喔!很好用的東西! 范例三:將 cp 范例中所創建的 /tmp/etc/ 這個目錄刪除掉! [root@study tmp]# rmdir /tmp/etc rmdir: failed to remove '/tmp/etc': Directory not empty &lt;== 刪不掉啊!因為這不是空的目錄! [root@study tmp]# rm -r /tmp/etc rm: descend into directory `/tmp/etc'? y rm: remove regular file `/tmp/etc/fstab'? y rm: remove regular empty file `/tmp/etc/crypttab'? ^C &lt;== 按下 [crtl]+c 中斷 .....(中間省略)..... # 因為身份是 root ,默認已經加入了 -i 的選項,所以你要一直按 y 才會刪除! # 如果不想要繼續按 y ,可以按下“ [ctrl]-c ”來結束 rm 的工作。 # 這是一種保護的動作,如果確定要刪除掉此目錄而不要詢問,可以這樣做: [root@study tmp]# \rm -r /tmp/etc # 在指令前加上反斜線,可以忽略掉 alias 的指定選項喔!至于 alias 我們在bash再談! # 拜托!這個范例很可怕!你不要刪錯了!刪除 /etc 系統是會掛掉的! 范例四:刪除一個帶有 - 開頭的文件 [root@study tmp]# touch ./-aaa- &lt;==[touch](../Text/index.html#touch)這個指令可以創建空文件! [root@study tmp]# ls -l -rw-r--r--. 1 root root 0 Jun 11 19:22 -aaa- &lt;==文件大小為0,所以是空文件 [root@study tmp]# rm -aaa- rm: invalid option -- 'a' &lt;== 因為 "-" 是選項嘛!所以系統誤判了! Try 'rm ./-aaa-' to remove the file `-aaa-'. &lt;== 新的 bash 有給建議的 Try 'rm --help' for more information. [root@study tmp]# rm ./-aaa- ``` 這是移除的指令(remove),要注意的是,通常在Linux系統下,為了怕文件被 root 誤殺,所以很多 distributions 都已經默認加入 -i 這個選項了!而如果要連目錄下的東西都一起殺掉的話, 例如子目錄里面還有子目錄時,那就要使用 -r 這個選項了!不過,使用“ rm -r ”這個指令之前,請千萬注意了,因為該目錄或文件“肯定”會被 root 殺掉!因為系統不會再次詢問你是否要砍掉呦!所以那是個超級嚴重的指令下達呦! 得特別注意!不過,如果你確定該目錄不要了,那么使用 rm -r 來循環殺掉是不錯的方式! 另外,范例四也是很有趣的例子,我們在之前就談過,文件名最好不要使用 "-" 號開頭, 因為 "-" 后面接的是選項,因此,單純的使用“ rm -aaa- ”系統的指令就會誤判啦! 那如果使用后面會談到的正則表達式時,還是會出問題的!所以,只能用避過首位字符是 "-" 的方法啦! 就是加上本目錄“ ./ ”即可!如果 man rm 的話,其實還有一種方法,那就是“ rm -- -aaa- ”也可以啊! * mv (移動文件與目錄,或更名) ``` [root@study ~]# mv [-fiu] source destination [root@study ~]# mv [options] source1 source2 source3 .... directory 選項與參數: -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋; -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋! -u :若目標文件已經存在,且 source 比較新,才會更新 (update) 范例一:復制一文件,創建一目錄,將文件移動到目錄中 [root@study ~]# cd /tmp [root@study tmp]# cp ~/.bashrc bashrc [root@study tmp]# mkdir mvtest [root@study tmp]# mv bashrc mvtest # 將某個文件移動到某個目錄去,就是這樣做! 范例二:將剛剛的目錄名稱更名為 mvtest2 [root@study tmp]# mv mvtest mvtest2 &lt;== 這樣就更名了!簡單~ # 其實在 Linux 下面還有個有趣的指令,名稱為 rename , # 該指令專職進行多個文件名的同時更名,并非針對單一文件名變更,與mv不同。請man rename。 范例三:再創建兩個文件,再全部移動到 /tmp/mvtest2 當中 [root@study tmp]# cp ~/.bashrc bashrc1 [root@study tmp]# cp ~/.bashrc bashrc2 [root@study tmp]# mv bashrc1 bashrc2 mvtest2 # 注意到這邊,如果有多個來源文件或目錄,則最后一個目標文件一定是“目錄!” # 意思是說,將所有的數據移動到該目錄的意思! ``` 這是搬移 (move) 的意思!當你要移動文件或目錄的時后,呵呵!這個指令就很重要啦! 同樣的,你也可以使用 -u ( update )來測試新舊文件,看看是否需要搬移啰! 另外一個用途就是“變更文件名!”,我們可以很輕易的使用 mv 來變更一個文件的文件名呢!不過,在 Linux 才有的指令當中,有個 rename , 可以用來更改大量文件的文件名,你可以利用 man rename 來查閱一下,也是挺有趣的指令喔! ### 6.2.3 取得路徑的文件名稱與目錄名稱 每個文件的完整文件名包含了前面的目錄與最終的文件名,而每個文件名的長度都可以到達 255 個字符耶! 那么你怎么知道那個是文件名?那個是目錄名?嘿嘿!就是利用斜線 (/) 來分辨啊! 其實,取得文件名或者是目錄名稱,一般的用途應該是在寫程序的時候用來判斷之用的啦~ 所以,這部分的指令可以用在第三篇內的 shell scripts 里頭喔! 下面我們簡單的以幾個范例來談一談 basename 與 dirname 的用途! ``` [root@study ~]# basename /etc/sysconfig/network network &lt;== 很簡單!就取得最后的文件名~ [root@study ~]# dirname /etc/sysconfig/network /etc/sysconfig &lt;== 取得的變成目錄名了! ```
                  <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>

                              哎呀哎呀视频在线观看