作者 主題: [求助]如何用chmod只修改檔案權限而不修改目錄的權限  (閱讀 4524 次)

0 會員 與 1 訪客 正在閱讀本文。

Steven591120

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
我有一個目錄(ex:aaa)裡面是給人存放資料,所以會有許多的檔案和子目錄,我想要寫一個shell script file 定時每天在半夜將aaa目錄下的所有檔案改成唯讀(包括子目錄下的所有檔案)但是若是用chmod -R 會連目錄的權限也改了,導致日後其他人無法在其他的子目錄裡繼續存放檔案,我不能用umask讓他們存檔時就設成唯讀,因為存放檔案時他們有時會變動檔案位置或修改檔案,所以我才會想寫一個shell script file在每晚其他人檔案都確定放好後才改變權限.有哪位大大可以提供一個好方法,先謝謝啦.

dnl

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
搭配 find 指令服用如何?

搭配這個參數,應該只要一行指令就可以完成你要做的工作。
       -exec command ;
              Execute command; true if 0 status is returned.  All
              following arguments to find are taken to  be  argu-
              ments  to  the command until an argument consisting
              of `;' is encountered.  The string `{}' is replaced
              by the current file name being processed everywhere
              it occurs in the arguments to the command, not just
              in arguments where it is alone, as in some versions
              of find.  Both of these constructions might need to
              be  escaped  (with a `\') or quoted to protect them
              from expansion by the shell.  The command  is  exe-
              cuted in the starting directory.

HeroTsai

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
不如
先chmod  ooo -R aaa成唯讀
再chmod ooo aaa把目錄權限改回來
 :roll:

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
find /path/dir -type f -exec chmod 644 {} \;

Steven591120

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
謝謝大大的幫忙...可以了

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
引述: "netman"
find /path/dir -type f -exec chmod 644 {} \;


find /path/dir -type f -print0 | xargs -0 chmod 644

這是另外一種可能比較有效率的方式。

==
I am kenduest - 小州

my website: http://kenduest.sayya.org/