如何在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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP