Linux目錄及文件相關(guān)知識(shí)整理

Linux 文件管理是學(xué)習(xí) Linux 的基礎(chǔ),看了鳥(niǎo)叔的 Linux 書(shū)籍,把 Linux 目錄及文件相關(guān)的知識(shí)整理如下。

說(shuō)明:文本的測(cè)試環(huán)境是 CentOS 7。

  1. 文件屬性

1.1 基本概念

文件擁有者(Owner):在 Linux 中,每個(gè)用戶都有自己的主文件夾,也就是 /home/user 文件夾,user 為具體的用戶名,你就是這個(gè)文件夾下文件的擁有者,用戶之間是無(wú)法查看的。

群組(Group):為了便于用戶之間的合作交流,用戶可以組成一個(gè)小團(tuán)體,也就是群組。在這里大家可以共享一些文件,這些文件就是屬于整個(gè)群組的。

其他(Other):對(duì)于群組之外的用戶,都看作是其他人。

root 這個(gè)特殊用戶在 Linux 中是天神一般的存在,因?yàn)樗梢宰龅揭磺惺虑椋?dāng)然也包括查看任何用戶的主文件夾下的文件,而普通用戶是無(wú)法查看 root 用戶的主文件夾 /root 的。

在 Linux 系統(tǒng)當(dāng)中,默認(rèn)的情況下,系統(tǒng)上的所有帳號(hào)與一般身份使用者,還有 root 用戶的相關(guān)信息, 都是記錄在 /etc/passwd 這個(gè)文件內(nèi)的。至于個(gè)人的密碼則是記錄在 /etc/shadow 這個(gè)文件中,但是密碼都是經(jīng)過(guò)算法加密的,即使是 root 用戶也沒(méi)法知道你的明文密碼(查看加密算法可用 authconfig --test | grep hashing 命令)。 此外,Linux所有的群組名稱都是記錄在 /etc/group 文件內(nèi)的。

1.2 文件屬性

使用 root 用戶登錄,cd 切換到 /root 目錄,輸入 ls -al 列出目錄下的所有的文件(包含隱藏文件)及屬性,ls 是 list 列表的縮寫,a 即是 attribute 屬性的首字母,l 也是 list 的首字母。

image.png

如上圖,把文件的屬性分為 7 列來(lái)看。

第一列為這個(gè)文件的類型與權(quán)限,共有十個(gè)字符,第一個(gè)字符為文件的類型,d 表示是目錄(dictionary),- 表示是普通的文件,剩下的九個(gè)字符為文件的權(quán)限。權(quán)限位可分為三組,第一組為文件擁有者的權(quán)限,r 表示是可讀(read),w 表示是可寫(write),x 表示是可執(zhí)行(execute);第二組為群組其他人的權(quán)限,- 表示沒(méi)有該位的權(quán)限;第三組為群組外其他人的權(quán)限,Linux 中的文件權(quán)限控制就是通過(guò)這九個(gè)權(quán)限位來(lái)實(shí)現(xiàn)的。

說(shuō)明:rwx 這三者對(duì)于文件和目錄意思是不一樣的。

對(duì)于目錄來(lái)說(shuō),r 表示擁有此權(quán)限可以讀取該目錄的結(jié)構(gòu)列表,即查看目錄下的文件名和子目錄名,但僅僅是文件名稱,能不能查看文件內(nèi)容,還需要看有沒(méi)有文件的可讀(r)權(quán)限;w 表示擁有此權(quán)限可以更改該目錄的結(jié)構(gòu)列表,即更改目錄下的文件名或者子目錄名,具體為新建文件或目錄,刪除已存在的文件或目錄,文件或目錄的重命名,文件或目錄的移動(dòng)。x 表示擁有此權(quán)限的用戶可以進(jìn)入該目錄中,無(wú)法進(jìn)入該目錄便不能讀取目錄中文件中的內(nèi)容,但是如果有目錄的 r 權(quán)限,是可以查看文件及目錄列表的,注意這兩者的區(qū)別,x 是文件內(nèi)容,r 是文件名稱。所以如果要開(kāi)放某一目錄給任何人瀏覽,應(yīng)該至少給予 r 和 x 權(quán)限。

對(duì)于文件來(lái)說(shuō),r 表示擁有此權(quán)限可以讀取文件中的實(shí)際內(nèi)容;w 表示擁有此權(quán)限可以修改文件中的內(nèi)容,但不包括刪除文件,刪除文件權(quán)限是和文件所在目錄的權(quán)限 w 有關(guān)的;x 表示擁有此權(quán)限可以執(zhí)行文件,如一些命令文件。

image.png

第二列為這個(gè)文件有多少的鏈接文件,可想象 Windows 下一個(gè)文件的快捷方式有多少個(gè)。

第三列為這個(gè)文件的擁有者賬號(hào)。

第四列為這個(gè)文件的群組名稱,賬號(hào)名默認(rèn)和群組名同名。

第五欄為這個(gè)文件的容量大小,默認(rèn)單位為字節(jié)(Byte)。

第六欄為這個(gè)文件的創(chuàng)建日期或者是最近的修改日期,日期格式為月 日 時(shí)間,如果文件被修改的時(shí)間距離現(xiàn)在很久了,則只會(huì)顯示年份。顯示文件完整的日期,可使用 ls -l --full-time 命令。

第七欄為這個(gè)文件的文件名,文件前有 . 代表這個(gè)文件為隱藏文件。

1.3 更改文件或目錄的屬性及權(quán)限

root 用戶可以更改任意文件或目錄的屬性,而普通用戶只能更改自己主文件夾下的文件或目錄的屬性。

1.3.1 chmod 改變文件及目錄權(quán)限

命令格式:chmod [-R] 權(quán)限寫法 文件或目錄,R 為可選參數(shù),加上此參數(shù)表示同時(shí)遞歸改變目錄下的所有子目錄或文件的權(quán)限。

兩種方式:

  • 數(shù)字類型

使用數(shù)字來(lái)表示 rwx,r->4,w->2,x->1。對(duì)三組權(quán)限(Owner,Group,Other)設(shè)置,只需將三個(gè)數(shù)字累加起來(lái),沒(méi)有某一位權(quán)限,累加數(shù)字就為 0。

  • 符號(hào)類型

使用符號(hào) u,g,o 來(lái)代表 User(Owner),Group,Other,通過(guò)給這三個(gè)符號(hào)賦值(=),加入(+),除去(-) rwx 來(lái)設(shè)置權(quán)限,另外還可以使用 a 表示所有用戶(All)來(lái)設(shè)置權(quán)限。

示例:

使用 root 用戶在系統(tǒng)的根目錄下,創(chuàng)建 test 文件,查看 test 文件夾設(shè)置的默認(rèn)屬性為 -rw-r--r-- 1 root root 日期 test。

cd / # 切換目錄到根目錄
touch test # 默認(rèn)屬性創(chuàng)建 test文件
ls -l test # 查看 test 文件夾屬性

然后使用另外一個(gè)普通用戶登錄系統(tǒng),打開(kāi)該文件,但是由于只有只讀屬性,所以無(wú)法編輯這個(gè) test 空白文件。

使用 root 用戶,修改該文件的權(quán)限,使同群組的用戶(Group)及其他用戶(Other)可以編輯此文件。

命令1:

chmod 746 test # 修改 test 文件屬性

命令2:

chmod g=rw,o=rw test # 使用重新賦值的方式設(shè)置權(quán)限,也可以將 g 和 o 連寫 chmod go=rw test

命令3:

chmod g+w,o+w test # 使用加入新權(quán)限的方式設(shè)置權(quán)限,也可以將 g 和 o 連寫成 chmod go+w test

命令4:

chmod a+w test # 直接使用 a 給所有用戶加上 w 權(quán)限

給文件設(shè)置權(quán)限命令有很多種,只需選擇一種即可。這樣修改 test 文件的權(quán)限后,其他用戶就可以編輯該文件了。

1.3.2 chown 改變文件及目錄擁有者

命令格式:chown [-R] 用戶名稱[:群組名稱] 文件或目錄,R 為可選參數(shù),加上此參數(shù)表示同時(shí)遞歸改變目錄下的所有子目錄或文件的擁有者。群組名稱也可以通過(guò) chown 命令修改,當(dāng)然還可以通過(guò)下面的 chgrp 命令修改。

示例:

假如 root 用戶將 test 文件復(fù)制一份給另一個(gè)普通用戶 wzw,復(fù)制完后,test 副本的文件屬性中,文件所有者和群組還是 root root,也就是復(fù)制操作會(huì)將原文件的文件屬性也復(fù)制。那么 wzw 這個(gè)普通用戶收到這個(gè)副本文件時(shí),并不具有該文件的所有操作,如重新設(shè)置該副本文件的權(quán)限,所以 root 用戶在將這個(gè)副本文件交給 wzw 這個(gè)用戶之前,要將這個(gè)文件的擁有者修改為 wzw。

cp test test1 # 復(fù)制 test 文件為 test1 文件
ls -l test1 # 查看復(fù)制后的 test1 文件的屬性,文件擁有者和群組仍為 root root
chown wzw test:test test1 # 將 test1 文件擁有者和群組都修改為 wzw 用戶
ls -l test1 # 再次查看 test1 文件的屬性,文件擁有者和群組已經(jīng)修改為 wzw wzw

修改文件屬性中群組也可以使用下面的 chgrp 命令。

1.3.3 chgrp 改變文件及目錄群組

命令格式:chgrp [-R] 群組名稱 文件或目錄,R 為可選參數(shù),加上此參數(shù)表示同時(shí)遞歸改變目錄下的所有子目錄或文件的擁有者。

示例:

將上面復(fù)制的文件 test1 群組設(shè)為已經(jīng)存在的 root 群組和不存在的 test 群組,在 Linux 中,創(chuàng)建新用戶后,默認(rèn)還會(huì)創(chuàng)建對(duì)應(yīng)的用戶名稱的群組。

chgrp root test1 # 將 test1 文件的群組屬性設(shè)為 root 群組
ls -l test1 # 查看 test1 文件的屬性,可以看到群組已經(jīng)改為了 root,但文件的擁有者還是 wzw 沒(méi)有變
chgrp test test1 # 將 test1 文件的群組屬性設(shè)為 test 群組,會(huì)提示 test 是無(wú)效的組

chown 和 chgrp 命令都可以修改文件屬性的群組,但是 chown 還可以設(shè)置文件的擁有者,這就是兩者的區(qū)別。

  1. 目錄配置

2.1 FHS 標(biāo)準(zhǔn)

由于 Linux 的發(fā)行版非常多,除了文本使用的 CentOS 外,常見(jiàn)的還有 Ubuntu,Debian,RedHat 等等。如果每個(gè)發(fā)行版的系統(tǒng)目錄結(jié)構(gòu)都不一樣,那么就需要學(xué)習(xí)每個(gè)版本的 Linux,這肯定是我們不愿看到的,所以 Linux 社區(qū)就制定了文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn),簡(jiǎn)稱 FHS 標(biāo)準(zhǔn)。FHS 標(biāo)準(zhǔn)定義了 Linux 操作系統(tǒng)中主要目錄及目錄內(nèi)容,大多數(shù)的 Linux 發(fā)行版都是遵從 FHS 標(biāo)準(zhǔn)并維護(hù) FHS 的要求的。如今 FHS 標(biāo)準(zhǔn)也在不斷的修訂中。

2.2 目錄說(shuō)明

   目錄                          說(shuō)明                   
   /                     整個(gè)文件系統(tǒng)層次結(jié)構(gòu)的根目錄             
  /bin      可執(zhí)行文件(命令)目錄,可以被root與一般用戶使用,如 cat,chmod,mkdir 等常用命令
 /sbin      開(kāi)機(jī)、修復(fù)、還原系統(tǒng)所需要的指令目錄,這些指令只有 root 才能夠利用來(lái)“設(shè)置”系統(tǒng),其他使用者最多只能用來(lái)“查詢”
 /boot      開(kāi)機(jī)引導(dǎo)文件目錄,如 Linux 的內(nèi)核(kernel)文件名為 vmlinuz,開(kāi)機(jī)管理程序 grub
  /dev      存取設(shè)備目錄。在 Linux 中,任何設(shè)備都是以文本形態(tài)存在于這個(gè)目錄中的,如 cpu,disk 等
  /etc             系統(tǒng)主要的配置文件目錄,如前面提到的用戶的密碼信息。       
  /lib                      系統(tǒng)函數(shù)庫(kù)目錄                 
 /media                 可移除的設(shè)備目錄,如光盤,DVD            
  /mnt                     暫時(shí)掛載的設(shè)備目錄                
  /opt               第三方軟件放置目錄,如 KDE 桌面管理系統(tǒng)         
  /run             系統(tǒng)開(kāi)機(jī)后所產(chǎn)生的各項(xiàng)信息放置目錄,可以使用內(nèi)存仿真       
  /srv            服務(wù)所需要取用的數(shù)據(jù)目錄,如 WWW 服務(wù),F(xiàn)TP 服務(wù)      
  /tmp      一般使用者或者是正在執(zhí)行的程序暫時(shí)放置文件的目錄,任何人都能夠存取,重要的數(shù)據(jù)不可放置在此目錄
  /usr      軟件資源所放置的目錄,類似Windows 系統(tǒng)的 C:\Windows\ 和 C:\Program files\ 安裝一些系統(tǒng)默認(rèn)的軟件或者一般的軟件
/usr/bin                  用戶能夠使用的指令目錄               
/usr/lib                  類似于 /lib 目錄               

/usr/lib64 類似于 /lib64 目錄
/usr/libexec 某些不被一般使用者慣用的可執(zhí)行文件或腳本目錄,如 X 圖形窗口下面的操作指令
/usr/local 軟件的安裝目錄
/usr/sbin 非系統(tǒng)正常運(yùn)行所需要的系統(tǒng)指令,如某些網(wǎng)絡(luò)服務(wù)軟件的服務(wù)指令,基本功能和 /sbin 差不多
/usr/share 只讀架構(gòu)的數(shù)據(jù)文件和共享文件目錄
/usr/games 與游戲比較相關(guān)的數(shù)據(jù)放置目錄
/usr/include c/c++等程序語(yǔ)言的文件開(kāi)始(header)與包含檔(include)放置目錄,當(dāng)我們以t arball 方式 (*.tar.gz 的方式安裝軟件)安裝某些軟件時(shí),會(huì)使用到里頭的許多包含檔
/usr/src 一般源代碼建議放置目錄
/home 使用者主文件夾目錄。沒(méi)創(chuàng)建一個(gè)新的使用者賬號(hào),便在該目錄下創(chuàng)建一個(gè)和用戶名稱相同的文件夾
/lib64 用來(lái)存放與 /lib 不同的格式的二進(jìn)制函數(shù)庫(kù),如支持 64 位的 /lib64 函數(shù)
/root 系統(tǒng)管理員(root)的主文件夾
/proc 虛擬文件系統(tǒng)目錄,數(shù)據(jù)都是放在內(nèi)存中的,而不占用任何的硬盤空間,如系統(tǒng)核心、行程信息,網(wǎng)絡(luò)狀態(tài)
/sys 虛擬文件系統(tǒng)目錄,和 /proc 類似,同樣也是不占用硬盤空間,主要也是記錄核心與系統(tǒng)硬件信息較相關(guān)的信息
/var 經(jīng)常性變動(dòng)的文件目錄,如高速緩存,登錄文件以及軟件運(yùn)行中產(chǎn)生的文件,如 數(shù)據(jù)庫(kù)文件
/var/cache 應(yīng)用程序本身運(yùn)行過(guò)程中會(huì)產(chǎn)生緩存文件目錄
/var/lib 程序執(zhí)行過(guò)程中數(shù)據(jù)文件放置的目錄
/var/lock 文件鎖目錄,如共享鎖,只能讀取文件,不能修改文件
/var/log 登錄文件放置的目錄
/var/mail 個(gè)人電子郵件信箱放置的目錄
/var/run 與 /run 類似
/var/spool 排隊(duì)等待其他程序使用的數(shù)據(jù)目錄,如工作調(diào)度數(shù)據(jù)

在 CentOS7 中,目錄的編排與過(guò)去的版本不同,將許多原本放在根目錄(/)中的目錄,放到了 /usr 目錄中了,然后只在根目錄下加上目錄的鏈接設(shè)置。包括下面這些:

  • /bin -> /usr/bin
  • /sbin -> /usr/sbin
  • /lib -> /usr/lib
  • /lib64 -> /usr/lib64
  • /var/lock -> /run/lock
  • /var/run -> /run

這樣做帶可以隱藏文件路徑,增加權(quán)限安全,有節(jié)省存儲(chǔ)的好處。

結(jié)合上面的目錄,Linux 的目錄樹(shù)結(jié)構(gòu)如下圖所示。

image.png
  1. 文件與目錄管理

3.1 特殊目錄與路徑

3.1.1 特殊目錄

  • .:表示當(dāng)前的目錄,也可以使用 ./ 來(lái)表示。
  • ..:表示上一級(jí)目錄,也可以使用 ../ 來(lái)表示。
  • -:表示前一個(gè)工作目錄。
  • ~:表示當(dāng)前使用者的主文件夾,也即是 /home/user名。
  • ~user名:表示 user 這個(gè)使用者的主文件夾。

3.1.2 特殊路徑

  • 絕對(duì)路徑

一種從系統(tǒng)的根目錄開(kāi)始寫起的路徑表示方式,如 /home/wzw/Desktop

  • 相對(duì)路徑

一種以當(dāng)前目錄為相對(duì)位置的路徑的表示方式,如當(dāng)前在 /home/wzw/Download 目錄中,想切換到 /home/wzw/Desktop 目錄,只需要使用 cd ../Desktop 命令即可。

絕對(duì)路徑寫起來(lái)可能會(huì)比絕對(duì)路徑,但具有絕對(duì)的正確性,而相對(duì)路徑相比絕對(duì)路徑更加的靈活,如在寫程序時(shí)為了程序的可移植性,常使用相對(duì)路徑來(lái)表示目錄。

3.2 目錄相關(guān)命令

3.2.1 切換目錄

命令格式:cd 目錄

cd 是 Change Dictionary 的縮寫,目錄可以為前面提到的特殊目錄,使用絕對(duì)路徑或者時(shí)相對(duì)路徑表示。

示例:

cd / # 切換目錄到根目錄

3.2.2 顯示當(dāng)前目錄

命令格式:pwd [-p]

pwd 是 Print Working Dictionary 的縮寫,也就是顯示當(dāng)前所在的目錄,p 參數(shù)是可以取得當(dāng)前目錄的真實(shí)目錄,如鏈接的目錄文件 /bin ,直接使用 pwd 命令,顯示 /bin,但加上 P 參數(shù),顯示真實(shí)的目錄為 /usr/bin。

示例:

cd /bin # 切換目錄到 /bin
pwd # 顯示當(dāng)前目錄為 /bin
pwd -P # 顯示當(dāng)前目錄真實(shí)目錄為 /usr/bin,CentOS7 下成立,其他版本 Linux 可能不成立哦

3.2.3 查看目錄

命令格式:ls [-aAdfFhilnrRSt] 目錄名稱或者文件名、ls [--color={never,auto,always}] 目錄名稱或者文件名、ls [--full-time] 目錄名稱或者文件名

ls 這個(gè)命令的參數(shù)比較多,參數(shù)的詳情可以使用 man 、 info 查看 ls 詳細(xì)信息,或者查看 ls 的幫助ls -- help。

選項(xiàng)與參數(shù):

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

-A :全部的文件,連同隱藏文件,但不包括 . 與 .. 這兩個(gè)目錄

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

-f :直接列出結(jié)果,而不進(jìn)行排序 (ls 默認(rèn)會(huì)以文件名排序?。?/p>

-F :根據(jù)文件、目錄等信息,給予附加數(shù)據(jù)結(jié)構(gòu),例如:

  *:代表可可執(zhí)行文件; /:代表目錄; =:代表 socket 文件; |:代表 FIFO 文件;

-h :將文件大小以人類較易讀的方式(例如 GB, KB 等等)列出來(lái);

-i :列出 inode 數(shù)字,也即是鏈接到目錄或者文件的數(shù)目

-l :長(zhǎng)數(shù)據(jù)串行出,包含文件的屬性與權(quán)限等等數(shù)據(jù)(常用)

-n :列出 UID 與 GID 而非使用者與群組的名稱

-r :將排序結(jié)果反向輸出,例如:原本文件名由小到大,反向則為由大到小

-R :連同子目錄內(nèi)容一起列出來(lái),等于該目錄下的所有文件都會(huì)顯示出來(lái)

-S :以文件大小大小排序,而不是用文件名排序

-t :依時(shí)間排序,而不是用文件名

--color=never :不要依據(jù)文件特性給予顏色顯示;

--color=always :顯示顏色

--color=auto :讓系統(tǒng)自行依據(jù)設(shè)置來(lái)判斷是否給予顏色

--full-time :以完整時(shí)間模式 (包含年、月、日、時(shí)、分) 輸出

--time={atime,ctime} :輸出 access 時(shí)間或改變權(quán)限屬性時(shí)間 (ctime)而非內(nèi)容變更時(shí)間 (modification time)

這些參數(shù)最常用的還是 l 參數(shù),為了方面使用,很多 Linux 版本都給 ls -l 命令起了個(gè)別名 ll,兩種命令是同樣的作用。

3.2.4 創(chuàng)建新的目錄

命令格式:mkdir [-mp] 目錄名稱

mkdir 為 Make Dictionary 的縮寫,目錄名稱前可以加上目錄位置,m 參數(shù)設(shè)置目錄權(quán)限,不采用默認(rèn)的目錄權(quán)限(umask),p 參數(shù)遞歸創(chuàng)建所需的目錄。

示例:

cd ~/Desktop # 切換用戶的主文件夾下的桌面
mkdir test # 在桌面上創(chuàng)建 test 目錄
mkdir -m 711 test0 # 創(chuàng)建 test0 目錄,并給目錄設(shè)置 rwx--x--x 權(quán)限
ls -ld test0 # 顯示 test0 目錄的屬性
mkdir -p test1/test2/test3 # 創(chuàng)建多級(jí)目錄,不加 p 參數(shù),會(huì)提示沒(méi)有此文件或目錄,創(chuàng)建失敗
ls -ld test* # 顯示剛才創(chuàng)建的前綴為 test 目錄的屬性

3.2.5 刪除空的目錄

命令格式:rmdir [-p] 目錄名稱

rmdir 為 Remove Dictionary 的縮寫,p 參數(shù)遞歸刪除空目錄。

示例:

mkdir test # 刪除上面創(chuàng)建的 test 目錄
mkdir -p test1/test2/test3 # 遞歸刪除上面創(chuàng)建的 test1/test2/test3 目錄

但是如果目錄不為空,即目錄內(nèi)有內(nèi)容,就不能使用 rmdir 刪除目錄,而要用 rm -r 命令刪除。

命令格式:rm [-rf] 目錄名稱

r 參數(shù)是將目錄下的內(nèi)容一一詢問(wèn)是否要?jiǎng)h除,在加上 f 參數(shù)則不詢問(wèn)直接強(qiáng)行刪除。

示例:

mkdir test # 創(chuàng)建 test 目錄
touch test/test.txt # 在 test 目錄中創(chuàng)建 test.txt 文件
rm -rf test # 刪除 test 目錄及目錄中的所有內(nèi)容,如果直接 rmdir 刪除,會(huì)提示刪除失敗,目錄非空

3.3 文件相關(guān)命令

3.3.1 新建文件

命令格式:touch [-acdmt] 文件名稱

一個(gè)文件在 Linux 中是有多個(gè)時(shí)間參數(shù)來(lái)記錄時(shí)間相關(guān)的信息的。

  • modification time (mtime): 當(dāng)該文件的“內(nèi)容數(shù)據(jù)”變更時(shí),就會(huì)更新這個(gè)時(shí)間,內(nèi)
    容數(shù)據(jù)指的是文件的內(nèi)容,而不是文件的屬性或權(quán)限。
  • status time (ctime): 當(dāng)該文件的“狀態(tài) (status)”改變時(shí),就會(huì)更新這個(gè)時(shí)間,像是權(quán)限與屬性被更改了,都會(huì)更新這個(gè)時(shí)間。
  • access time (atime): 當(dāng)“該文件的內(nèi)容被取用”時(shí),就會(huì)更新這個(gè)讀取時(shí)間(access)。舉例來(lái)說(shuō),我們使用 cat 去讀取一個(gè)文件時(shí), 就會(huì)更新該文件的 atime 。

touch 命令不僅可以創(chuàng)建文件,還可以修改文件的時(shí)間信息,a 參數(shù)就是修改 atime 的;m 參數(shù)是修改 mtime 的;c 參數(shù)修改文件的時(shí)間,若該文件不存在則不創(chuàng)建新文件;d 參數(shù)是 date 簡(jiǎn)寫,可以在后面直接加上時(shí)間參數(shù)。

3.3.2 復(fù)制文件

命令格式:cp [-adfilprsu] 來(lái)源文件 目標(biāo)文件

選項(xiàng)與參數(shù):

-a :相當(dāng)于 -dr --preserve=all 的意思,至于 dr 請(qǐng)參考下列說(shuō)明(常用)

-d :若來(lái)源文件為鏈接文件的屬性(link file),則復(fù)制鏈接文件屬性而非文件本身

-f :為強(qiáng)制(force)的意思,若目標(biāo)文件已經(jīng)存在且無(wú)法打開(kāi),則移除后再嘗試一次

-i :若目標(biāo)文件(destination)已經(jīng)存在時(shí),在覆蓋時(shí)會(huì)先詢問(wèn)動(dòng)作的進(jìn)行(常用)

-l :進(jìn)行硬式鏈接(hard link)的鏈接文件創(chuàng)建,而非復(fù)制文件本身

-p :連同文件的屬性(權(quán)限、用戶、時(shí)間)一起復(fù)制過(guò)去,而非使用默認(rèn)屬性(備份常用)

-r :遞回持續(xù)復(fù)制,用于目錄的復(fù)制行為(常用)

-s :復(fù)制成為符號(hào)鏈接文件 (symbolic link),亦即“捷徑”文件

-u :destination 比 source 舊才更新 destination,或 destination 不存在的情況下才復(fù)制

--preserve=all :除了 -p 的權(quán)限相關(guān)參數(shù)外,還加入 SELinux 的屬性, links, xattr 等也復(fù)制了。

最后需要注意的,如果來(lái)源文件有兩個(gè)以上,則最后一個(gè)目的文件一定要是“目錄”才行!

3.3.3 刪除文件

在上面刪除非空目錄中提到的命令也同樣適用于刪除文件。

3.3.4 移動(dòng)文件

命令格式:cp [--fiu] 來(lái)源位置 目標(biāo)位置

f 參數(shù)為如果目標(biāo)文件已存在,則不詢問(wèn)直接覆蓋,i 參數(shù)為如果目標(biāo)文件已存在,則詢問(wèn)是否覆蓋,u 參數(shù)為如果目標(biāo)文件已存在,但來(lái)源文件比較新,則更新目標(biāo)文件為來(lái)源文件,另外此命令還可以用來(lái)重命名文件和目錄。

3.3.5 查看內(nèi)容

查看一個(gè)文件內(nèi)容的命令很多,最常用的有 cat、more、less 等等,當(dāng)然我們也可以直接在文本編輯器中,如vim(還有語(yǔ)法高亮)打開(kāi)查看文件的內(nèi)容。

  • cat 是 Concatenate(連續(xù))的簡(jiǎn)寫,并不是“貓”的意思哦,cat 由第一行開(kāi)始顯示文件內(nèi)容
  • tac 從最后一行開(kāi)始顯示,可以看出 tac 是 cat 的倒寫。
  • nl 顯示的時(shí)候,順道輸出行號(hào)。
  • more 一頁(yè)一頁(yè)的顯示文件內(nèi)容,空格鍵向下翻頁(yè),Enter 鍵向下滾動(dòng)一行,/字符串,查詢字符串。
  • less 與 more 類似,但是比 more 更好的是,他可以往前翻頁(yè),空格鍵向下翻頁(yè),pagedown 鍵向下翻動(dòng)一頁(yè),pageup 向上翻動(dòng)一頁(yè)。
  • head 只看頭幾行。
  • tail 只看尾巴幾行。
  • od 以二進(jìn)制的方式讀取文件內(nèi)容。

個(gè)人 GitHub 地址:https://github.com/weizhiwen,歡迎來(lái)訪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容