Linux 文件目錄管理

      網友投稿 717 2025-04-01

      我們知道linux的目錄結構為樹狀結構,最頂級的目錄為根目錄 /。


      其他目錄通過掛載可以將它們添加到樹中,通過解除掛載可以移除它們。

      在開始本教程前我們需要先知道什么是絕對路徑與相對路徑。

      絕對路徑:

      路徑的寫法,由根目錄?/?寫起,例如: /usr/share/doc 這個目錄。

      相對路徑:

      路徑的寫法,不是由?/?寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成:?cd ../man?這就是相對路徑的寫法。

      處理目錄的常用命令

      接下來我們就來看幾個常見的處理目錄的命令吧:

      ls(英文全拼:list files): 列出目錄及文件名

      cd(英文全拼:change directory):切換目錄

      pwd(英文全拼:print work directory):顯示目前的目錄

      mkdir(英文全拼:make directory):創建一個新的目錄

      rmdir(英文全拼:remove directory):刪除一個空的目錄

      cp(英文全拼:copy file): 復制文件或目錄

      rm(英文全拼:remove): 刪除文件或目錄

      mv(英文全拼:move file): 移動文件與目錄,或修改文件與目錄的名稱

      你可以使用?man [命令]?來查看各個命令的使用文檔,如 :man cp。

      ls (列出目錄)

      linux系統當中, ls 命令可能是最常被運行的。

      語法:

      [root@www ~]# ls [-aAdfFhilnrRSt] 目錄名稱 [root@www ~]# ls [--color={never,auto,always}] 目錄名稱 [root@www ~]# ls [--full-time] 目錄名稱

      選項與參數:

      -a :全部的文件,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用)

      -d :僅列出目錄本身,而不是列出目錄內的文件數據(常用)

      -l :長數據串列出,包含文件的屬性與權限等等數據;(常用)

      將家目錄下的所有文件列出來(含屬性與隱藏檔)

      [root@www ~]# ls -al ~

      cd (切換目錄)

      cd是Change Directory的縮寫,這是用來變換工作目錄的命令。

      語法:

      cd [相對路徑或絕對路徑]

      #使用 mkdir 命令創建 runoob 目錄 [root@www ~]# mkdir runoob #使用絕對路徑切換到 runoob 目錄 [root@www ~]# cd /root/runoob/ #使用相對路徑切換到 runoob 目錄 [root@www ~]# cd ./runoob/ # 表示回到自己的家目錄,亦即是 /root 這個目錄 [root@www runoob]# cd ~ # 表示去到目前的上一級目錄,亦即是 /root 的上一級目錄的意思; [root@www ~]# cd ..

      接下來大家多操作幾次應該就可以很好的理解 cd 命令的。

      pwd (顯示目前所在的目錄)

      pwd 是?Print Working Directory?的縮寫,也就是顯示目前所在目錄的命令。

      [root@www ~]# pwd [-P]

      選項與參數:

      -P?:顯示出確實的路徑,而非使用連結 (link) 路徑。

      實例:單純顯示出目前的工作目錄:

      [root@www ~]# pwd /root <== 顯示出目錄啦~

      實例顯示出實際的工作目錄,而非連結檔本身的目錄名而已。

      [root@www ~]# cd /var/mail <==注意,/var/mail是一個連結檔 [root@www mail]# pwd /var/mail <==列出目前的工作目錄 [root@www mail]# pwd -P /var/spool/mail <==怎么回事?有沒有加 -P 差很多~ [root@www mail]# ls -ld /var/mail lrwxrwxrwx 1 root root 10 Sep 4 17:54 /var/mail -> spool/mail # 看到這里應該知道為啥了吧?因為 /var/mail 是連結檔,連結到 /var/spool/mail # 所以,加上 pwd -P 的選項后,會不以連結檔的數據顯示,而是顯示正確的完整路徑啊!

      mkdir (創建新目錄)

      如果想要創建新的目錄的話,那么就使用mkdir (make directory)吧。

      語法:

      mkdir [-mp] 目錄名稱

      選項與參數:

      -m :配置文件的權限喔!直接配置,不需要看默認權限 (umask) 的臉色~

      -p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創建起來!

      實例:請到/tmp底下嘗試創建數個新目錄看看:

      [root@www ~]# cd /tmp [root@www tmp]# mkdir test <==創建一名為 test 的新目錄 [root@www tmp]# mkdir test1/test2/test3/test4 mkdir: cannot create directory `test1/test2/test3/test4': No such file or directory <== 沒辦法直接創建此目錄啊! [root@www tmp]# mkdir -p test1/test2/test3/test4

      加了這個 -p 的選項,可以自行幫你創建多層目錄!

      實例:創建權限為?rwx--x--x?的目錄。

      [root@www tmp]# mkdir -m 711 test2 [root@www tmp]# ls -l drwxr-xr-x 3 root root 4096 Jul 18 12:50 test drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1 drwx--x--x 2 root root 4096 Jul 18 12:54 test2

      上面的權限部分,如果沒有加上 -m 來強制配置屬性,系統會使用默認屬性。

      如果我們使用 -m ,如上例我們給予 -m 711 來給予新的目錄 drwx--x--x 的權限。

      rmdir (刪除空的目錄)

      語法:

      rmdir [-p] 目錄名稱

      選項與參數:

      -p :連同上一級『空的』目錄也一起刪除

      刪除 runoob 目錄

      [root@www tmp]# rmdir runoob/

      將 mkdir 實例中創建的目錄(/tmp 底下)刪除掉!

      [root@www tmp]# ls -l <==看看有多少目錄存在? drwxr-xr-x 3 root root 4096 Jul 18 12:50 test drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1 drwx--x--x 2 root root 4096 Jul 18 12:54 test2 [root@www tmp]# rmdir test <==可直接刪除掉,沒問題 [root@www tmp]# rmdir test1 <==因為尚有內容,所以無法刪除! rmdir: `test1': Directory not empty [root@www tmp]# rmdir -p test1/test2/test3/test4 [root@www tmp]# ls -l <==您看看,底下的輸出中test與test1不見了! drwx--x--x 2 root root 4096 Jul 18 12:54 test2

      利用 -p 這個選項,立刻就可以將 test1/test2/test3/test4 一次刪除。

      不過要注意的是,這個 rmdir 僅能刪除空的目錄,你可以使用 rm 命令來刪除非空目錄。

      cp (復制文件或目錄)

      cp 即拷貝文件和目錄。

      語法:

      [root@www ~]# cp [-adfilprsu] 來源檔(source) 目標檔(destination) [root@www ~]# cp [options] source1 source2 source3 .... directory

      選項與參數:

      -a:相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用)

      -d:若來源檔為連結檔的屬性(link file),則復制連結檔屬性而非文件本身;

      -f:為強制(force)的意思,若目標文件已經存在且無法開啟,則移除后再嘗試一次;

      -i:若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)

      -l:進行硬式連結(hard link)的連結檔創建,而非復制文件本身;

      -p:連同文件的屬性一起復制過去,而非使用默認屬性(備份常用);

      -r:遞歸持續復制,用於目錄的復制行為;(常用)

      -s:復制成為符號連結檔 (symbolic link),亦即『捷徑』文件;

      -u:若 destination 比 source 舊才升級 destination !

      用 root 身份,將 root 目錄下的 .bashrc 復制到 /tmp 下,并命名為 bashrc

      [root@www ~]# cp ~/.bashrc /tmp/bashrc [root@www ~]# cp -i ~/.bashrc /tmp/bashrc cp: overwrite `/tmp/bashrc'? n <==n不覆蓋,y為覆蓋

      rm (移除文件或目錄)

      語法:

      rm [-fir] 文件或目錄

      選項與參數:

      -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;

      -i :互動模式,在刪除前會詢問使用者是否動作

      -r :遞歸刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!

      將剛剛在 cp 的實例中創建的 bashrc 刪除掉!

      [root@www tmp]# rm -i bashrc rm: remove regular file `bashrc'? y

      如果加上 -i 的選項就會主動詢問喔,避免你刪除到錯誤的檔名!

      mv (移動文件與目錄,或修改名稱)

      語法:

      [root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 source3 .... directory

      選項與參數:

      -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;

      -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

      -u :若目標文件已經存在,且 source 比較新,才會升級 (update)

      復制一文件,創建一目錄,將文件移動到目錄中

      [root@www ~]# cd /tmp [root@www tmp]# cp ~/.bashrc bashrc [root@www tmp]# mkdir mvtest [root@www tmp]# mv bashrc mvtest

      將某個文件移動到某個目錄去,就是這樣做!

      將剛剛的目錄名稱更名為 mvtest2

      [root@www tmp]# mv mvtest mvtest2

      Linux 文件內容查看

      Linux系統中使用以下命令來查看文件的內容:

      cat? 由第一行開始顯示文件內容

      tac? 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!

      nl ??顯示的時候,順道輸出行號!

      more 一頁一頁的顯示文件內容

      less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!

      head 只看頭幾行

      tail 只看尾巴幾行

      你可以使用?man [命令]來查看各個命令的使用文檔,如 :man cp。

      cat

      由第一行開始顯示文件內容

      語法:

      cat [-AbEnTv]

      選項與參數:

      -A :相當於 -vET 的整合選項,可列出一些特殊字符而不是空白而已;

      -b :列出行號,僅針對非空白行做行號顯示,空白行不標行號!

      -E :將結尾的斷行字節 $ 顯示出來;

      -n :列印出行號,連同空白行也會有行號,與 -b 的選項不同;

      -T :將 [tab] 按鍵以 ^I 顯示出來;

      -v :列出一些看不出來的特殊字符

      檢看 /etc/issue 這個文件的內容:

      [root@www ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m

      tac

      tac與cat命令剛好相反,文件內容從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!如:

      [root@www ~]# tac /etc/issue Kernel \r on an \m CentOS release 6.4 (Final)

      nl

      顯示行號

      語法:

      nl [-bnw] 文件

      選項與參數:

      -b :指定行號指定的方式,主要有兩種:

      -b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);

      -b t :如果有空行,空的那一行不要列出行號(默認值);

      -n :列出行號表示的方法,主要有三種:

      -n ln :行號在熒幕的最左方顯示;

      -n rn :行號在自己欄位的最右方顯示,且不加 0 ;

      -n rz :行號在自己欄位的最右方顯示,且加 0 ;

      -w :行號欄位的占用的位數。

      實例一:用 nl 列出 /etc/issue 的內容

      [root@www ~]# nl /etc/issue 1 CentOS release 6.4 (Final) 2 Kernel \r on an \m

      more

      一頁一頁翻動

      Linux 文件與目錄管理

      [root@www ~]# more /etc/man_db.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(中間省略).... --More--(28%) <== 重點在這一行喔!你的光標也會在這里等待你的命令

      在 more 這個程序的運行過程中,你有幾個按鍵可以按的:

      空白鍵 (space):代表向下翻一頁;

      Enter???????? :代表向下翻『一行』;

      /字串???????? :代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;

      :f??????????? :立刻顯示出檔名以及目前顯示的行數;

      q???????????? :代表立刻離開 more ,不再顯示該文件內容。

      b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線無用。

      less

      一頁一頁翻動,以下實例輸出/etc/man.config文件的內容:

      [root@www ~]# less /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(中間省略).... : <== 這里可以等待你輸入命令!

      less運行時可以輸入的命令有:

      空白鍵????:向下翻動一頁;

      [pagedown]:向下翻動一頁;

      [pageup]??:向上翻動一頁;

      /字串?????:向下搜尋『字串』的功能;

      ?字串?????:向上搜尋『字串』的功能;

      n???????? :重復前一個搜尋 (與 / 或 ? 有關!)

      N???????? :反向的重復前一個搜尋 (與 / 或 ? 有關!)

      q???????? :離開 less 這個程序;

      head

      取出文件前面幾行

      語法:

      head [-n number] 文件

      選項與參數:

      -n :后面接數字,代表顯示幾行的意思

      [root@www ~]# head /etc/man.config

      默認的情況中,顯示前面 10 行!若要顯示前 20 行,就得要這樣:

      [root@www ~]# head -n 20 /etc/man.config

      tail

      取出文件后面幾行

      語法:

      tail [-n number] 文件

      選項與參數:

      -n :后面接數字,代表顯示幾行的意思

      -f :表示持續偵測后面所接的檔名,要等到按下[ctrl]-c才會結束tail的偵測

      [root@www ~]# tail /etc/man.config # 默認的情況中,顯示最后的十行!若要顯示最后的 20 行,就得要這樣: [root@www ~]# tail -n 20 /etc/man.config

      Linux

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:無代碼開發平臺是什么
      下一篇:實施ERP軟件之前,請問EDI提供商6個問題
      相關文章
      亚洲精品天堂成人片?V在线播放| 亚洲国产夜色在线观看| 亚洲 欧洲 日韩 综合在线| 久久久久亚洲精品美女| 亚洲线精品一区二区三区| 亚洲国产成人爱av在线播放| 亚洲AV日韩AV一区二区三曲| 亚洲乱码国产乱码精华| 亚洲人成无码网站在线观看| 亚洲日韩av无码中文| 亚洲精品无码中文久久字幕| 亚洲精华国产精华精华液 | 在线亚洲高清揄拍自拍一品区 | 中文字幕人成人乱码亚洲电影 | 亚洲AV无码一区二区三区系列| 国产亚洲精品拍拍拍拍拍| 国产亚洲精午夜久久久久久| 久久影院亚洲一区| 亚洲人成精品久久久久| 国产亚洲精品无码成人| 亚洲阿v天堂在线| 久久精品国产亚洲AV无码偷窥| 亚洲精品无码久久久久久久| 亚洲男人电影天堂| 亚洲专区中文字幕| 亚洲卡一卡二卡乱码新区| 亚洲午夜无码久久久久小说| 色婷婷六月亚洲综合香蕉| 亚洲AV无码乱码在线观看性色扶| 久久激情亚洲精品无码?V| 亚洲精品国产精品乱码在线观看 | 亚洲乱妇老熟女爽到高潮的片| 亚洲高清毛片一区二区| 亚洲 另类 无码 在线| 久久精品国产精品亚洲| 亚洲成AV人片在线观看WWW| 中文字幕亚洲综合精品一区| 亚洲av无码电影网| 亚洲av成人中文无码专区| 久久久久亚洲?V成人无码| 国产AV无码专区亚洲AV漫画|