天天看點

linux常用指令之檔案管理篇

linux常用指令之檔案管理篇

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
………………省略部分輸出資訊………………           
linux常用指令之檔案管理篇

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           
linux常用指令之檔案管理篇

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           

繼續閱讀