本文主要介紹處理目錄的常用命令,並且對每個命令及參數一一舉例說明。
處理目錄的常見命令有:
·ls list,列出指定目錄下的內容
·cd Change Directory,更改目錄
·pwd Print Working Directory,查看當前工作目錄的完整的絕對路徑
·mkdir Make Directory,創建空目錄
·rmdir Remove Directory,移除空目錄
·cp Copy,複製;遵從一個文件到另一個文件,多個文件到一個目錄的原則
·rm Remove,移除文件和目錄
·ls命令:
在Linux系統中,ls是很常用的命令,也是最基本的命令。缺省情況下ls打印出指定目錄下的文件和目錄的清單。而 且還可以顯示文件和目錄的權限,用戶、組、日期、時間等信息。
例如:
命令格式:
# ls [-aAdfFhilnrRSt] 目錄名稱
# ls [--color={never,auto,always}] 目錄名稱
# ls [--full-time] 目錄名稱
常用參數:
-a:顯示所有文件和目錄,包括隱藏文件、目錄、.和..(常用)
例如:
-A:顯示除.和..這兩個目錄的所有文件和目錄
例如:
-d:僅列出目錄本身,不列出此目錄內的文件和目錄等數據(常用)
例如:
-f:直接列出目錄內所有數據,不進行排序(ls預設以文件名排序)
-F:根據文件和目錄等信息,給予附加數據結構;其中,*:代表可執行文件;/:代表目錄;=:代表socket文件;|:代表FIFO文件
例如:
-h:將文件和目錄的容量以易讀的方式(例如:GB,MB,KB等)列出,通常與 -l 配合使用
例如:
-i:列出inode號碼
-l:長數據串列出,包括權限,用戶、組、日期、時間等信息
例如:
-n:列出UID和GID,非用戶名和組名
例如:
-r:將排序結果反向輸出
例如:
-R:列出連同子目錄內容所有內容,即該目錄下的所有文件全部列出
例如:
-S:以文件容量大小排序,而不是以文件名排序
例如:
-t:以時間排序,而不是以文件名排序
例如:
--color=never:不根據文件特性給予顏色顯示
--color=always:顯示顏色
--color=auto:讓系統自行根據設定來判斷是否給予顏色顯示
--full-time:以完整時間模式輸出(年、月、日、時、分)
--time={atime,ctime}:輸出access時間或改變權限屬性時間(ctime),而非內容變更時間(modification time)
·cd命令:
cd命令在linux中是最基本、最常見、也是必須要掌握的命令,因爲其他命令語句的操作以及目錄替換都是建立在cd命令的基礎上,所以掌握好cd命令的使用技巧對於一名運維人員裏說是非常重要的。
例如:
功能特性:
切換當前目錄至指定目錄
命令格式:
# cd [/PATH/TO/SOMEDIR]
常用範例:
# cd,cd ~:切換至當前用戶的家目錄
例如:
# cd /:切換至根目錄
例如:
# cd ..:切換至當前目錄的上一級目錄
例如:
# cd ~USERNAME:切換指定用戶的家目錄
例如:
# cd -:在上一次目錄與當前目錄之前來回切換的命令
例如:
# cd !$:將上一個cd命令的參數作爲本次cd命令的參數使用
例如:
·pwd命令:
pwd命令用來查看當前工作目錄的完整的絕對路徑。如果不清楚當前終端所處的工作目錄時,可使用此命令來了解詳細的路徑位置。
功能特性:
查看當前目錄的完整路徑
命令格式:
# pwd [OPTION]...
常用參數:
一般情況下不帶任何參數,除非查看鏈接文件的實際路徑時,加選項 -P
常用範例:
範例一:查看當前目錄的完整路徑
範例二:顯示實際工作目錄,而非鏈接文件本身的目錄名
我們列出/etc/ec0.d看看是什麼文件類型,見下圖。它是一個鏈接文件,原始路徑爲/etc/rc.d/rc0.d
所以,加上-P選項就會顯示鏈接文件目錄的原始路徑,而並非鏈接本身的路徑
範例三:當我們使用命令 /bin/pwd 時,鏈接文件顯示的反而是原始路徑,跟範例二是相反的;如果是
加上-P ,同樣顯示原始路徑;加上-L,則顯示鏈接文件的路徑
·mkdir命令:
mkdir命令用來創建指定名稱單個或多個空目錄,並且用戶對此目錄具有寫權限。
例1:創建一個空目錄
例2:在/tmp/test目錄下創建多個子目錄
功能特性:
創建空目錄
命令格式:
# mkdir [-mpv] 目錄名稱
常用參數:
-m:配置文件的權限,直接設定,無視預設權限umask
例如:在/tmp 目錄下創建一個test1目錄和指定一個777權限的test2的目錄
說明:如果不加-m參數,創建的test1目錄默認的權限爲755(rwxr-xr-x),而加了-m 777參數後,權限爲
777(rwxrwxrwx)
-p:創建的目錄如果不存在,則會直接將所需要的目錄逐一遞歸創建。這個選項不建議常用,避免錯字多無用目錄。
例如:
-v:顯示詳細的創建目錄時的信息
例如:在/tmp 目錄下創建 /test4/test5/test6/test7
如果我們需要批量創建目錄,且路徑不盡相同,那麼該如何創建呢?一個一個命令的去敲當然可以,但是這樣就顯得非常繁瑣且效率不高,那麼我們應該採用什麼方式能夠用一條命令就創建呢?
這裏就需要用掉命令行的展開 {}。
{}:可以承載一個以逗號分隔的路徑列表,並能夠將其展開爲多個路徑
例1:在/tmp 目錄下創建一個名爲 x 的目錄,x目錄下創建y1、y2目錄,y1目錄下創建a、b目錄
命令:# mkdir -pv /tmp/x/{y1/{a,b},y2}
例2:在/tmp 目錄下創建a_c,a_d,b_c,b_d目錄
命令:# mkdir -v /tmp/{a,b}_{c,d}
例3:在/tmp 目錄下創建一個目錄mytest,在mytest目錄下創建
/bin
/sbin
/etc
/etc/sysconfg
/etc/sysconfg/network-scripts
/usr
/usr/bin
/usr/sbin
/usr/local
/usr/local/bin
/usr/local/sbin
/usr/local/etc
/usr/local/lib
/usr/lib
/usr/lib64
/var
/var/cache
/var/log
/var/run
命令:mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfg/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}
·rmdir命令:
rmdir命令也是linux中最基本的命令。該命令的主要用來刪除空目錄,刪除之前用戶必須具有父目錄的寫權限
功能特性:
從一個目錄中刪除單個或多個子空目錄項
命令格式:
# rmdir [-p] 目錄名稱
常用參數:
-p:遞歸刪除空目錄。當子目錄刪除後其父目錄如果爲空則一併刪除
-v:顯示命令的執行過程
例如:
注意:rmdir命令僅能刪除空目錄,如果目錄裏存在文件,則無法用rmdir命令刪除之
·cp命令:
cp,copy,複製,此命令是linux系統中需要熟練掌握的命令。遵從一個文件到另一個文件,多個文件到一個目錄的原則
功能特性:
將源文件複製至目標文件,或將多個源文件複製至目標目錄
命令格式:
# cp [-adfilprsu] 源文件(source) 目標文件(destination)
# cp [option] source1 source2 source3 ... 目錄
例如:
常用參數:
-a:相當於-pdr的意思,至於pdr請參考以下參數說明(常用)
例如:
-f:force,爲強制的意思,若目標文件已經存在且無法開啓,則移除後再嘗試一次
-i:若目標文件(destination)已經存在時,在覆蓋時會提醒用戶是否需要覆蓋(常用)
例1:以root用戶,將家目錄下的.bashrc複製到/tmp下,並更名爲bashrc,操作兩次,第二次加-i選項
注意:加上-i之後,詢問用戶是否覆蓋,y爲覆蓋,n爲不覆蓋
例2:複製/var/log/wtmp至/tmp目錄下,並對比wtmp文件的屬性
注意:在不加任何選項的情況下,文件的部分屬性、時間、權限會改變;這個特性很重要。如果要將源文件
的所有屬性一起復制過來就加 -a 選項,如:
-p:連同檔案的屬性一起復制過去,而非使用默認屬性(備份常用)
例如:
-r:遞歸持續複製,用於目錄的複製行爲(常用)
例如:將/etc/ 目錄下的所有內容複製到/tmp下
注意:-r可以遞歸複製文件和目錄,但是文件和目錄的權限等屬性會改變,所以,也可以利用 -a 選項
-l:進行硬式鏈接文件的建立,而非複製文件本身。
-s:複製成爲符號鏈接文件,相當於windows中的快捷方式
例如:
-d:若來源文件爲鏈接文件,則複製鏈接文件的屬性而非文件本身;若未加此選項,則複製的是源文件
例如:
-u:若目標文件(destination)比源文件(source)舊才更新目標文件(備份常用)
例如:若~/.bashrc 比 /tmp/bashrc新才複製過來,即源文件和目標文件有差異時才複製
注意1:若源文件有兩個以上,則最後一個目的文件一定要是目錄纔可以
注意2:cp命令如果未帶任何參數,則只能複製文件,而不能複製目錄
·rm命令:
rm命令是linux中常用命令。此命令可以刪除指定目錄下的單個或多個文件、目錄。對於鏈接文件,只刪除鏈接文件本身,而不會刪除鏈接文件的源文件。
功能特性:
刪除指定目錄下的單個或多個文件和目錄,如果未加-r,則可刪文件而不能刪除目錄。
命令格式:
# rm [-firv] 文件或目錄
常用參數:
-f:force;忽略不存在的文件,不會出現警告信息提醒用戶
例如:
-i:交互式刪除,在刪除前會詢問用戶是否刪除
例如:
-r:遞歸刪除,將目錄和子目錄包括文件等全部刪除,這是非常危險的操作。
例如:刪除/tmp目錄下的sysconfig目錄
mkdir命令無法刪除dirname目錄,因爲此目錄非空
root用戶下預設了"rm -i"的別名爲rm,所有需要一直按y刪除,這是一種保護動作。
如果不想按y,則可以加一個\,但是則個是危險操作,要慎重使用
注意:如果將加上-f選項,同樣不會提示是否刪除,這也是一個非常危險的操作。
如 # rm -rm /* ,如果使用這個命令刪除,那麼你的系統基本上就報銷了,所以此命令使用時一定要慎重
擴展使用rm命令
1、如果要批量刪除某個字段開頭的文件,可使用通配符 * ,* 代表任意字符
例如:刪除/tmp 目錄下a打頭的文件
2、刪除相同後綴名文件,可與通配符 [] 來配合
例如:刪除/tmp 目錄下的 1.log, 2.log, 3.log 這三個文件
3、如果是特殊字符如 - 開頭的文件,要用特殊方式來進行刪除操作
例如:刪除/tmp 目錄下 以 -f 打頭的文件
注意:用命令 # touch --ff- 無法創建,因爲系統認爲 --ff-是一個參數。所以需要加上 "./ " ," . "
代表的是當前目錄。同理,刪除--ff-文件時,也需要在前面加上"./ "