Linux常用文件許可權命令詳解

pwd

pwd命令用於獲取當前工作目錄的絕對路徑。

使用示例:

pwd

效果如下圖:

cd

cd命令用於切換工作目錄。

使用示例:

cd 萬貓學社/

效果如下圖:

其中在路徑表示時, 一個半形句號(.)表示當前目錄,例如路徑./one/more等同於one/more;兩個半形句號(..)表示上級目錄,例如路徑/one/more/../society等同於/one/society,其中more和society目錄同級。

cd命令的默認參數為~,符號~表示當前用戶的家目錄。當root用戶登錄時,命令cdcd ~cd /root執行效果相同。

ls

ls命令用於顯示指定工作目錄下的內容。

命令格式:ls [參數] [目錄名]

參數說明:

參數 說明
-a 顯示所有文件及目錄(包括隱藏文件)
-l 將文件的許可權、擁有者、文件大小等詳細資訊列出(ll等同於ls -l
-r 將文件反序列出(默認按英文字母正序)
-t 將文件按創建時間正序列出
-R 遞歸遍歷目錄下文件

使用示例:

  1. 查看當前目錄下的所有文件(包括隱藏文件)。
ll -a

效果如下圖:

  1. 查看Linux系統上的文件、目錄和設備的許可權。
ls -l

效果如下圖:

上圖顯示的第一列就是文件許可權資訊,共11位字元,分5部分。

第1位表示存檔類型,d表示目錄,-表示一般文件。
第2~4位表示當前用戶的許可權。
第5~7位表示同用戶組的用戶許可權。
第8~10位表示不同用戶組的用戶許可權。
第11位是一個半形句號.,表示SELinux安全標籤。
用戶許可權每組三位,rwx分別表示讀、寫、執行許可權,對應八進位表示為4、2、1。

例如onemore目錄的root用戶許可權為drwxr-xr-x,則表示:

該目錄對root用戶具有讀寫和執行所有許可權,該目錄對root組其他用戶有讀和執行許可權,該目錄對其他用戶有讀和執行許可權。
所以該許可權表示對應八進位許可權表示為:755(當前用戶的許可權:4+2+1=7,同用戶組的用戶許可權:4+1=5,不同用戶組的用戶許可權:4+1=5)。

chmod

chmod命令用於修改文件許可權,-R參數以遞歸方式對子目錄和文件進行修改。

命令格式:chmod 許可權設定字串 文件名

其中,許可權設定字串的格式為:

[ugoa...][[+-=][rwxX]...][,...]

其含義為:

  • u 表示該文件的擁有者,g 表示與該文件的擁有者屬於同一用戶組的用戶,o 表示其他以外的人,a 表示這三者皆是。
  • + 表示增加許可權、- 表示取消許可權、= 表示唯一設定許可權。
  • r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該文件是個子目錄或者該文件已經被設定過為可執行。

使用示例:

新建名為onemore.sh的Shell腳本,該腳本將會輸出萬貓學社

echo "echo '萬貓學社'" > onemore.sh

ll命令可以看到onemore.sh沒有執行許可權,直接運行會報Permission denied錯誤。

效果如下圖:

onemore.sh文件增加當前用戶的執行許可權。

chmod u+x onemore.sh

有了執行許可權之後就可以直接運行了。

效果如下圖:

image.png

onemore.sh文件撤銷當前用戶的執行許可權。

chmod u-x onemore.sh

效果如下圖:

image.png

tree

tree命令用於查看創建後的目錄結構。

使用示例:

tree

效果如下圖:

touch

touch命令用於修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統會建立一個新的文件。

命令格式:touch [參數] [文件]

參數說明:

參數 說明
-c 如果指定文件不存在,不會建立新文件
-r 使用參考文件的時間記錄
-t 設置文件的時間記錄

使用示例:

創建4個空文件。

touch 萬.txt 貓.txt 學.txt 社.txt

效果如下圖:

mkdir

mkdir命令用於新建子目錄。-p參數確保目錄名稱存在,不存在的就新建一個。

使用示例:

新建目錄o/n/e/m/o/r/e/,並使用tree命令查看創建後的目錄結構。

mkdir -p o/n/e/m/o/r/e/
tree

效果如下圖:

cp

cp命令主要用於複製文件或目錄。

命令格式:cp [參數] [源文件] [目標文件]

參數說明:

參數 說明
-d 複製時保留鏈接
-f 覆蓋已經存在的目標文件而不給出提示
-i 覆蓋前詢問
-p 除複製文件的內容外,還把修改時間和訪問許可權也複製到新文件中
-r 複製目錄及目錄內的所有項目

使用示例:

首先創建目錄o/n/e/m/o/r/e/

mkdir -p o/n/e/
mkdir -p m/o/r/e/

效果如下圖:

再將目錄m中的所有內容複製到目錄o/n/e/中。

cp -r m o/n/e/

效果如下圖:

rm

rm命令用於刪除一個文件或者目錄。

命令格式:rm [參數] [文件]

參數說明:

參數 說明
-i 刪除前逐一詢問確認
-f 無需確認,直接刪除
-r 刪除目錄下所有文件

使用示例:

  1. 無需確認直接刪除以.txt結尾的文件。
rm -rf *.txt

效果如下圖:

  1. 無需確認直接刪除目錄o及其目錄下所有子目錄和文件。
rm -rf o

效果如下圖:

mv

mv命令用來為文件或目錄改名、或將文件或目錄移入其它位置。

命令格式:mv [參數] [源文件] [目標文件]

參數說明:

參數 說明
-i 若指定目錄已有同名文件,則先詢問是否覆蓋舊文件
-f 如果目標文件已經存在,不會詢問而直接覆蓋

使用示例:

  1. 將文件名萬貓學社.txt改為onemore.txt
touch 萬貓學社.txt
mv 萬貓學社.txt onemore.txt

效果如下圖:

  1. 先創建目錄o/n/e/m/o/r/e/,將目錄m中的所有內容移動到目錄o/n/e/中。
mkdir -p o/n/e/
mkdir -p m/o/r/e/
mv m o/n/e/

效果如下圖:

rename

rename命令用字元串替換的方式批量改變文件名。

命令格式:rename 原字元串 目標字元串 文件列表

使用示例:

先創建4個空文件,再將當前目錄下所有.txt文件後綴都改為.log

touch 萬.txt 貓.txt 學.txt 社.txt
rename .txt .log *

效果如下圖:


竟然已經看到這裡了,你我定是有緣人,留下你的點贊關注,他日必成大器。

微信公眾號:萬貓學社

微信掃描二維碼

關注後回復「電子書」

獲取12本Java必讀技術書籍