Linux常用文件許可權命令詳解
- 2022 年 3 月 7 日
- 筆記
pwd
pwd
命令用於獲取當前工作目錄的絕對路徑。
使用示例:
pwd
效果如下圖:
cd
cd
命令用於切換工作目錄。
使用示例:
cd 萬貓學社/
效果如下圖:
其中在路徑表示時, 一個半形句號(.
)表示當前目錄,例如路徑./one/more
等同於one/more
;兩個半形句號(..
)表示上級目錄,例如路徑/one/more/../society
等同於/one/society
,其中more和society目錄同級。
cd
命令的默認參數為~
,符號~
表示當前用戶的家目錄。當root用戶登錄時,命令cd
、cd ~
和cd /root
執行效果相同。
ls
ls
命令用於顯示指定工作目錄下的內容。
命令格式:ls [參數] [目錄名]
參數說明:
參數 | 說明 |
---|---|
-a | 顯示所有文件及目錄(包括隱藏文件) |
-l | 將文件的許可權、擁有者、文件大小等詳細資訊列出(ll 等同於ls -l ) |
-r | 將文件反序列出(默認按英文字母正序) |
-t | 將文件按創建時間正序列出 |
-R | 遞歸遍歷目錄下文件 |
使用示例:
- 查看當前目錄下的所有文件(包括隱藏文件)。
ll -a
效果如下圖:
- 查看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
有了執行許可權之後就可以直接運行了。
效果如下圖:
將onemore.sh
文件撤銷當前用戶的執行許可權。
chmod u-x onemore.sh
效果如下圖:
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 | 刪除目錄下所有文件 |
使用示例:
- 無需確認直接刪除以
.txt
結尾的文件。
rm -rf *.txt
效果如下圖:
- 無需確認直接刪除目錄o及其目錄下所有子目錄和文件。
rm -rf o
效果如下圖:
mv
mv
命令用來為文件或目錄改名、或將文件或目錄移入其它位置。
命令格式:mv [參數] [源文件] [目標文件]
參數說明:
參數 | 說明 |
---|---|
-i | 若指定目錄已有同名文件,則先詢問是否覆蓋舊文件 |
-f | 如果目標文件已經存在,不會詢問而直接覆蓋 |
使用示例:
- 將文件名
萬貓學社.txt
改為onemore.txt
。
touch 萬貓學社.txt
mv 萬貓學社.txt onemore.txt
效果如下圖:
- 先創建目錄
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必讀技術書籍
