如何在Linux中遞迴使用chmod?


您可能遇到過這種情況:您使用Linux作為主要作業系統,然後嘗試建立或編輯檔案,Linux終端會返回類似“許可權被拒絕”的錯誤。通常情況下,此類錯誤與當前使用者許可權不足有關,可以透過設定正確的檔案許可權或更改所有者來解決。

在Linux中,檔案透過檔案許可權、所有權和屬性進行控制,這確保只有授權使用者和程序才能訪問檔案和目錄。

在瞭解如何使**chmod**命令遞迴地運行於所有目錄和子目錄之前,讓我們首先了解**chmod**命令的實際含義。

**Chmod**是一個Linux命令,主要用於更改檔案系統物件的訪問許可權。它根據模式更改每個檔案的許可權,其中模式簡單地描述了要修改的許可權。

語法

chmod [Options]... Mode [,Mode]... file...
chmod [Options]... Numeric_Mode file...
chmod [Options]... --reference=RFile file...

在上文語法中,[OPTIONS]佔位符可以用不同的標誌替換,這些標誌可與之一起使用,一些最常用的標誌是……(此處應補充具體的常用標誌及說明)

-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
-c, --changes like verbose but report only when a change is made
-c, --reference=RFile use RFile's mode instead of MODE values
-R, --recursive change files and directories recursively
--help display help and exit
--version output version information and exit

現在我們知道了**chmod**的實際作用,讓我們考慮幾個示例,在這些示例中,我們將為同一個檔案提供不同的許可權。

示例1

chmod 777 sample.txt

上述命令使用模式**777**,這意味著任何人都可以讀取、寫入和執行該檔案。

示例2

chmod 020 sample.txt

上述命令使用模式**020**,這意味著只有組可以讀取、寫入和執行該檔案。

現在,讓我們學習如何遞迴執行**chmod**。

語法

chmod -R MODE directory

假設我們有一個目錄,我想在其所有檔案上遞迴執行chmod。在執行命令之前,目錄結構如下所示……(此處應補充目錄結構示例)

immukul@192 linux-questions-code % ls -tlr
total 960
-rw-r--r-- 1 immukul staff 446966 Sep 23 1998 wget-1.5.3.tar.gz
drwxr-xr-x 3 immukul staff     96 Jul  7 17:42 d1
-rwxrwxrwx 1 root    staff    106 Jul  8 13:10 sample2.sh
drwxr-xr-x 4 immukul staff    128 Jul  8 19:05 d2
-rwxrwxrwx 1 root    staff    946 Jul 12 18:45 sample.sh
-rwxrwxrwx 1 root    staff    718 Jul 12 18:48 sample1.sh

考慮以下命令

chmod -R 777 .

輸出

total 960
-rwxrwxrwx 1 immukul staff 446966 Sep 23 1998 wget-1.5.3.tar.gz
drwxrwxrwx 3 immukul staff     96 Jul  7 17:42 d1
-rwxrwxrwx 1 root    staff    106 Jul  8 13:10 sample2.sh
drwxrwxrwx 4 immukul staff    128 Jul  8 19:05 d2
-rwxrwxrwx 1 root    staff    946 Jul 12 18:45 sample.sh
-rwxrwxrwx 1 root    staff    718 Jul 12 18:48 sample1.sh

更新於:2021年8月2日

336 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.