ls指令 – 顯示指定工作目錄下的檔案及屬性資訊
ls是最常被使用到的Linux指令之一,來自于英文單詞list的縮寫,也正如list單詞的英文意思,其功能是列舉出指定目錄下的檔案名稱及其屬性。
預設不加參數的情況下,ls指令會列出目前工作目錄中的檔案資訊,經常與cd和pwd指令搭配使用,十分友善。而帶上參數後,我們則可以做更多的事情,作為最基礎、最頻繁使用的指令,有必要仔細了解下其常用功能。
文法格式: ls [參數] [檔案]
常用參數:
-a | 顯示所有檔案及目錄 (包括以“.”開頭的隐藏檔案) |
-l | 使用長格式列出檔案及目錄的詳細資訊 |
-r | 将檔案以相反次序顯示(預設依英文字母次序) |
-t | 根據最後的修改時間排序 |
-A | 同 -a ,但不列出 “.” (目前目錄) 及 “..” (父目錄) |
-S | 根據檔案大小排序 |
-R | 遞歸列出所有子目錄 |
-d | 檢視目錄的資訊,而不是裡面子檔案的資訊 |
-i | 輸出檔案的inode節點資訊 |
-m | 水準列出檔案,以逗号間隔 |
-X | 按檔案擴充名排序 |
--color | 輸出資訊中帶有着色效果 |
參考執行個體
輸出目前目錄中的檔案(預設不含隐藏檔案):
[root@linuxcool ~]# ls
anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates
Desktop Downloads Music Public Videos
輸出目前目錄中的檔案(含隐藏檔案):
[root@linuxcool ~]# ls -a
. .bashrc Documents Music Videos
.. .cache Downloads Pictures .viminfo
anaconda-ks.cfg .config .esd_auth .pki
.bash_history .cshrc .ICEauthority Public
.bash_logout .dbus initial-setup-ks.cfg .tcshrc
.bash_profile Desktop .local Templates
輸出檔案的長格式,包含屬性詳情資訊:
[root@linuxcool ~]# ls -l
total 8
-rw-------. 1 root root 1430 Dec 14 08:05 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Desktop
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Documents
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Downloads
-rw-r--r--. 1 root root 1585 Dec 14 08:34 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Music
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Pictures
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Public
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Templates
drwxr-xr-x. 2 root root 6 Dec 14 08:37 Videos
輸出指定目錄中的檔案清單:
[root@linuxcool ~]# ls /etc
adjtime hosts pulse
aliases hosts.allow qemu-ga
alsa hosts.deny qemu-kvm
alternatives hp radvd.conf
anacrontab idmapd.conf ras
asound.conf init.d rc0.d
at.deny inittab rc1.d
………………省略部分輸出資訊………………
輸出檔案名稱及inode屬性塊号碼:
[root@linuxcool ~]# ls -i
35290115 anaconda-ks.cfg 35290137 initial-setup-ks.cfg 35290164 Templates
1137391 Desktop 17840039 Music 51609597 Videos
1137392 Documents 35290165 Pictures
17840038 Downloads 51609596 Public
搭配通配符一起使用,輸出指定目錄中所有以sd開頭的檔案名稱:
[root@linuxcool ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2
依據檔案大小進行排序,輸出指定目錄中檔案屬性詳情資訊:
[root@linuxcool ~]# ls -Sl /etc
total 1348
-rw-r--r--. 1 root root 692241 Sep 10 2018 services
-rw-r--r--. 1 root root 66482 Dec 14 08:34 ld.so.cache
-rw-r--r--. 1 root root 60352 May 11 2017 mime.types
-rw-r--r--. 1 root dnsmasq 26843 Aug 12 2018 dnsmasq.conf
-rw-r--r--. 1 root root 25696 Dec 12 2018 brltty.conf
-rw-r--r--. 1 root root 9450 Aug 12 2018 nanorc
-rw-r--r--. 1 root root 7265 Dec 14 08:03 kdump.conf
-rw-------. 1 tss tss 7046 Aug 13 2018 tcsd.conf
………………省略部分輸出資訊………………
cp指令 – 複制檔案或目錄
cp指令來自于英文單詞copy的縮寫,用于将一個或多個檔案或目錄複制到指定位置,亦常用于檔案的備份工作。-r參數用于遞歸操作,複制目錄時若忘記加則會直接報錯,而-f參數則用于當目标檔案已存在時會直接覆寫不再詢問,這兩個參數尤為常用。
文法格式:cp [參數] 源檔案 目标檔案
常用參數:
-f | 若目标檔案已存在,則會直接覆寫原檔案 |
-i | 若目标檔案已存在,則會詢問是否覆寫 |
-p | 保留源檔案或目錄的所有屬性 |
-r | 遞歸複制檔案和目錄 |
-d | 當複制符号連接配接時,把目标檔案或目錄也建立為符号連接配接,并指向與源檔案或目錄連接配接的原始檔案或目錄 |
-l | 對源檔案建立硬連接配接,而非複制檔案 |
-s | 對源檔案建立符号連接配接,而非複制檔案 |
-b | 覆寫已存在的檔案目标前将目标檔案備份 |
-v | 詳細顯示cp指令執行的操作過程 |
-a | 等價于“pdr”選項 |
參考執行個體
在目前工作目錄中,将某個檔案複制一份,并定義新檔案名稱:
[root@linuxcool ~]# cp anaconda-ks.cfg kickstart.cfg
在目前工作目錄中,将某個目錄複制一份,并定義新目錄名稱:
[root@linuxcool ~]# cp -r Documents Doc
複制某個檔案時,保留其原始權限及使用者歸屬資訊:
[root@linuxcool ~]# cp -a kickstart.cfg ks.cfg
将某個檔案複制到/etc目錄中,并覆寫已有檔案,不進行詢問:
[root@linuxcool ~]# cp -f ks.cfg /etc
将多個檔案一同複制到/etc目錄中,如已有目标檔案名稱則預設詢問是否覆寫:
[root@linuxcool ~]# cp anaconda-ks.cfg ks.cfg /etc
cp: overwrite '/etc/ks.cfg'? y
mkdir指令 – 建立目錄檔案
mkdir指令來自于英文詞組“make directories”的縮寫,其功能是用來建立目錄檔案。使用簡單,但需要注意若要建立的目标目錄已經存在,則會提示已存在而不繼續建立,不覆寫已有檔案。而目錄不存在,但具有嵌套的依賴關系,例如a/b/c/d/e/f,要想一次性建立則需要加入-p參數,進行遞歸操作。
文法格式 : mkdir [參數] 目錄
常用參數:
-p | 遞歸建立多級目錄 |
-m | 建立目錄的同時設定目錄的權限 |
-z | 設定安全上下文 |
-v | 顯示目錄的建立過程 |
參考執行個體
在目前工作目錄中,建立一個目錄檔案:
[root@linuxcool ~]# mkdir dir1
在目前工作目錄中,建立一個目錄檔案并設定700權限,不讓除所有主以外任何人讀、寫、執行它:
[root@linuxcool ~]# mkdir -m 700 dir2
在目前工作目錄中,一次性建立多個目錄檔案:
[root@linuxcool ~]# mkdir dir3 dir4 dir5
在系統根目錄中,一次性建立多個有嵌套關系的目錄檔案:
[root@linuxcool ~]# mkdir -p /dir1/dir2/dir3/dir4/dir5
mv指令 – 移動或改名檔案
mv指令來自于英文單詞move的縮寫,其功能與英文含義相同,用于對檔案進行剪切和重命名。
這是一個高頻使用的檔案管理指令,我們需要留意它與複制指令的差別。cp指令是用于檔案的複制操作,檔案個數是增加的,而mv則為剪切操作,也就是對檔案進行移動(搬家)操作,檔案位置發生變化,但總個數并無增加。
在同一個目錄内對檔案進行剪切的操作,實際應了解成重命名操作,例如下面的執行個體一所示。
文法格式:mv [參數] 源檔案 目标檔案
常用參數:
-i | 若存在同名檔案,則向使用者詢問是否覆寫 |
-f | 覆寫已有檔案時,不進行任何提示 |
-b | 當檔案存在時,覆寫前為其建立一個備份 |
-u | 當源檔案比目标檔案新,或者目标檔案不存在時,才執行移動此操作 |
參考執行個體
在目前工作目錄中,對某個檔案進行剪切後粘貼(重命名)操作:
[root@linuxcool ~]# mv anaconda-ks.cfg ks.cfg
将某個檔案移動到/etc目錄中,保留檔案原始名稱:
[root@linuxcool ~]# mv ks.cfg /etc
将某個目錄移動到/etc目錄中,并定義新的目錄名稱:
[root@linuxcool ~]# mv Documents /etc/docs
将/home目錄中所有的檔案都移動到目前工作目錄中,遇到已存在檔案則直接覆寫:
[root@linuxcool ~]# mv -f /home/* .
pwd指令 – 顯示目前工作目錄的路徑
pwd指令來自于英文詞組”print working directory“的縮寫,其功能是用于顯示目前工作目錄的路徑,即顯示所在位置的絕對路徑。
在實際工作中,我們經常會在不同目錄之間進行切換,為了防止”迷路“,可以使用pwd指令快速檢視目前所處的工作目錄路徑,友善開展後續工作。
文法格式:pwd [參數]
常用參數:
-L | 顯示邏輯路徑 |
參考執行個體
檢視目前工作目錄路徑:
[root@linuxcool ~]# pwd
/root