提取具有指定權限的檔案和資料夾

提取具有指定權限的檔案和資料夾

我在 Windows 中使用 7zip 打包一個包含很多子資料夾和檔案的資料夾,上傳到 VPS,然後執行命令:

tar -xvzf file.tar.gz

那麼所有解壓縮後的檔案和資料夾的權限都是777。

答案1

如果您以普通用戶身份運行tar(1),它將umask預設應用您的。如果您tar(1)以身份運行root,那麼您可以提供--no-same-permissions命令列選項來要求tar(1)尊重umask.

所以:要嘛以普通用戶身分運行:

umask 022
tar zxvf file.tar.gz

或將其運行為root

umask 022
tar zxvf file.tar.gz --no-same-permissions

您可能想堅持umask 022使用~/.bashrc, ~/.bash_profile, 或~/.profile。 (bash(1)有關啟動文件的完整詳細信息,請參閱線上說明頁面。這很複雜。)

有關詳細信息,umask請參閱 shell 的線上說明頁、umask(2)系統呼叫線上說明頁或umask(1posix)POSIX 提供的實用程式線上說明頁(如果已manpages-posix安裝)。

答案2

在目錄的根目錄中執行以下命令來設定目錄和檔案所需的權限:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

注意右花括號和反斜線之間的空格

答案3

如果您使用大寫的 X,則chmod可以使用它來僅設定目錄的執行權限。 IE

chmod -R ugo+X .

答案4

尋找 。 -type f -exec chmod 644 {} \;

相關內容