處理目錄的常用命令
接下來我們就來看幾個常見的處理目錄的命令吧:
ls(英文全拼:list files): 列出目錄及文件名
cd(英文全拼:change directory):切換目錄
pwd(英文全拼:print work directory):顯示目前的目錄
mkdir(英文全拼:make directory):創(chuàng)建一個新的目錄
rmdir(英文全拼:remove directory):刪除一個空的目錄
cp(英文全拼:copy file): 復(fù)制文件或目錄
rm(英文全拼:remove): 移除文件或目錄
mv(英文全拼:move file): 移動文件與目錄,或修改文件與目錄的名稱
選項與參數(shù):
-a :全部的文件驹碍,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用)
-d :僅列出目錄本身它改,而不是列出目錄內(nèi)的文件數(shù)據(jù)(常用)
-l :長數(shù)據(jù)串列出蟀悦,包含文件的屬性與權(quán)限等等數(shù)據(jù)凳宙;(常用)
cd (切換目錄)
cd是Change Directory的縮寫胚吁,這是用來變換工作目錄的命令雕拼。
語法:
cd [相對路徑或絕對路徑]
#使用 mkdir 命令創(chuàng)建 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 ..
接下來大家多操作幾次應(yīng)該就可以很好的理解 cd 命令的而涉。
pwd (顯示目前所在的目錄)
pwd 是?Print Working Directory?的縮寫,也就是顯示目前所在目錄的命令联予。
[root@www ~]# pwd [-P]
選項與參數(shù):
-P?:顯示出確實的路徑啼县,而非使用連結(jié) (link) 路徑材原。
實例:單純顯示出目前的工作目錄:
[root@www ~]# pwd/root? <== 顯示出目錄啦~
實例顯示出實際的工作目錄,而非連結(jié)檔本身的目錄名而已季眷。
[root@www ~]# cd /var/mail? <==注意余蟹,/var/mail是一個連結(jié)檔[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# 看到這里應(yīng)該知道為啥了吧子刮?因為 /var/mail 是連結(jié)檔威酒,連結(jié)到 /var/spool/mail # 所以,加上 pwd -P 的選項后挺峡,會不以連結(jié)檔的數(shù)據(jù)顯示葵孤,而是顯示正確的完整路徑啊橱赠!
mkdir (創(chuàng)建新目錄)
如果想要創(chuàng)建新的目錄的話尤仍,那么就使用mkdir (make directory)。
語法:
mkdir [-mp] 目錄名稱
選項與參數(shù):
-m :配置文件的權(quán)限喔狭姨!直接配置宰啦,不需要看默認權(quán)限 (umask) 的臉色~
-p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創(chuàng)建起來!
實例:請到/tmp底下嘗試創(chuàng)建數(shù)個新目錄看看:
[root@www ~]# cd /tmp[root@www tmp]# mkdir test? ? <==創(chuàng)建一名為 test 的新目錄[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory? ? ? <== 沒辦法直接創(chuàng)建此目錄八吞簟绑莺!
[root@www tmp]# mkdir -p test1/test2/test3/test4
加了這個 -p 的選項暖眼,可以自行幫你創(chuàng)建多層目錄惕耕!
實例:創(chuàng)建權(quán)限為?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
上面的權(quán)限部分诫肠,如果沒有加上 -m 來強制配置屬性司澎,系統(tǒng)會使用默認屬性。
如果我們使用 -m 栋豫,如上例我們給予 -m 711 來給予新的目錄 drwx--x--x 的權(quán)限挤安。
rmdir (刪除空的目錄)
語法:
rmdir [-p] 目錄名稱
選項與參數(shù):
-p :連同上一級『空的』目錄也一起刪除
刪除 runoob 目錄
[root@www tmp]# rmdir runoob/
將 mkdir 實例中創(chuàng)建的目錄(/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? <==因為尚有內(nèi)容,所以無法刪除丛肢!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 (復(fù)制文件或目錄)
cp 即拷貝文件和目錄榜轿。
語法:
[root@www ~]# cp [-adfilprsu] 來源檔(source) 目標檔(destination)[root@www ~]# cp [options] source1 source2 source3 .... directory
選項與參數(shù):
-a:相當於 -pdr 的意思,至於 pdr 請參考下列說明朵锣;(常用)
-d:若來源檔為連結(jié)檔的屬性(link file)谬盐,則復(fù)制連結(jié)檔屬性而非文件本身;
-f:為強制(force)的意思诚些,若目標文件已經(jīng)存在且無法開啟设褐,則移除后再嘗試一次;
-i:若目標檔(destination)已經(jīng)存在時泣刹,在覆蓋時會先詢問動作的進行(常用)
-l:進行硬式連結(jié)(hard link)的連結(jié)檔創(chuàng)建助析,而非復(fù)制文件本身;
-p:連同文件的屬性一起復(fù)制過去椅您,而非使用默認屬性(備份常用)外冀;
-r:遞歸持續(xù)復(fù)制,用於目錄的復(fù)制行為掀泳;(常用)
-s:復(fù)制成為符號連結(jié)檔 (symbolic link)雪隧,亦即『捷徑』文件;
-u:若 destination 比 source 舊才升級 destination 员舵!
用 root 身份脑沿,將 root 目錄下的 .bashrc 復(fù)制到 /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] 文件或目錄
選項與參數(shù):
-f :就是 force 的意思庄拇,忽略不存在的文件,不會出現(xiàn)警告信息韭邓;
-i :互動模式措近,在刪除前會詢問使用者是否動作
-r :遞歸刪除啊女淑!最常用在目錄的刪除了瞭郑!這是非常危險的選項!Q寄恪屈张!
將剛剛在 cp 的實例中創(chuàng)建的 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
選項與參數(shù):
-f :force 強制的意思瓣窄,如果目標文件已經(jīng)存在笛厦,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經(jīng)存在時俺夕,就會詢問是否覆蓋裳凸!
-u :若目標文件已經(jīng)存在贱鄙,且 source 比較新,才會升級 (update)
復(fù)制一文件姨谷,創(chuàng)建一目錄逗宁,將文件移動到目錄中
[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 文件內(nèi)容查看
Linux系統(tǒng)中使用以下命令來查看文件的內(nèi)容:
cat? 由第一行開始顯示文件內(nèi)容
tac? 從最后一行開始顯示瞎颗,可以看出 tac 是 cat 的倒著寫!
nl ??顯示的時候捌议,順道輸出行號哼拔!
more 一頁一頁的顯示文件內(nèi)容
less 與 more 類似,但是比 more 更好的是瓣颅,他可以往前翻頁倦逐!
head 只看頭幾行
tail 只看尾巴幾行
你可以使用?man [命令]來查看各個命令的使用文檔,如 :man cp宫补。
cat
由第一行開始顯示文件內(nèi)容
語法:
cat [-AbEnTv]
選項與參數(shù):
-A :相當於 -vET 的整合選項檬姥,可列出一些特殊字符而不是空白而已;
-b :列出行號粉怕,僅針對非空白行做行號顯示健民,空白行不標行號!
-E :將結(jié)尾的斷行字節(jié) $ 顯示出來贫贝;
-n :列印出行號秉犹,連同空白行也會有行號,與 -b 的選項不同平酿;
-T :將 [tab] 按鍵以 ^I 顯示出來凤优;
-v :列出一些看不出來的特殊字符
檢看 /etc/issue 這個文件的內(nèi)容:
[root@www ~]# cat /etc/issueCentOS release 6.4 (Final)Kernel \r on an \m
tac
tac與cat命令剛好相反悦陋,文件內(nèi)容從最后一行開始顯示蜈彼,可以看出 tac 是 cat 的倒著寫!如:
[root@www ~]# tac /etc/issueKernel \r on an \mCentOS release 6.4 (Final)
nl
顯示行號
語法:
nl [-bnw] 文件
選項與參數(shù):
-b :指定行號指定的方式俺驶,主要有兩種:
-b a :表示不論是否為空行幸逆,也同樣列出行號(類似 cat -n);
-b t :如果有空行暮现,空的那一行不要列出行號(默認值)还绘;
-n :列出行號表示的方法,主要有三種:
-n ln :行號在熒幕的最左方顯示栖袋;
-n rn :行號在自己欄位的最右方顯示拍顷,且不加 0 ;
-n rz :行號在自己欄位的最右方顯示塘幅,且加 0 昔案;
-w :行號欄位的占用的位數(shù)尿贫。
實例一:用 nl 列出 /etc/issue 的內(nèi)容
[root@www ~]# nl /etc/issue
? ? 1? CentOS release 6.4 (Final)? ? 2? Kernel \r on an \m
more
一頁一頁翻動
[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???????? :代表向下翻『一行』;
/字串???????? :代表在這個顯示的內(nèi)容當中捞稿,向下搜尋『字串』這個關(guān)鍵字又谋;
:f??????????? :立刻顯示出檔名以及目前顯示的行數(shù);
q???????????? :代表立刻離開 more 娱局,不再顯示該文件內(nèi)容彰亥。
b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用衰齐,對管線無用剩愧。
less
一頁一頁翻動,以下實例輸出/etc/man.config文件的內(nèi)容:
[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???????? :重復(fù)前一個搜尋 (與 / 或 ? 有關(guān)歉嗓!)
N???????? :反向的重復(fù)前一個搜尋 (與 / 或 ? 有關(guān)丰介!)
q???????? :離開 less 這個程序;
head
取出文件前面幾行
語法:
head [-n number] 文件
選項與參數(shù):
-n :后面接數(shù)字鉴分,代表顯示幾行的意思
[root@www ~]# head /etc/man.config
默認的情況中哮幢,顯示前面 10 行!若要顯示前 20 行志珍,就得要這樣:
[root@www ~]# head -n 20 /etc/man.config
tail
取出文件后面幾行
語法:
tail [-n number] 文件
選項與參數(shù):
-n :后面接數(shù)字橙垢,代表顯示幾行的意思
-f :表示持續(xù)偵測后面所接的檔名,要等到按下[ctrl]-c才會結(jié)束tail的偵測
[root@www ~]# tail /etc/man.config# 默認的情況中伦糯,顯示最后的十行柜某!若要顯示最后的 20 行,就得要這樣:[root@www ~]# tail -n 20 /etc/man.config
這是Linux命令鏈接:
https://www.runoob.com/linux/linux-file-content-manage.html