web-dev-qa-db-ja.com

ファイルとフォルダーに別々のアクセス許可を個別に設定するにはどうすればよいですか?

適用したい644パーミッションは、現在のディレクトリ内のすべてのファイルのみ、および755パーミッションは、chmodを使用した現在のディレクトリ内のサブディレクトリのみ

2

findを使用します。

find ./ -type f -maxdepth 1 -exec chmod 644 {} \;
find ./ -type d -maxdepth 1 -exec chmod 755 {} \;
  • -type f:ファイル
  • -type d:ディレクトリ
  • -maxdepth 1:最初のレベル(デフォルトの再帰的動作を避けるため)
  • -exec:結果からの引数でコマンドを実行
  • {}は結果の行に置き換えられます。試してください:

    find ./ -type d -maxdepth 1 -exec echo hi{}low \;
    

    これは、lnのような異なる引数順序を持つコマンドに役立ちます。

    ln -s {} ./otherfolder/{}
    

    またはcp

    cp {} ./otherfolder/
    
  • \;の後に-execを指定すると、-execの後に他のfindオプションを追加できるため、コマンドの終わりです(混同しないように)。試してください:

    find ./ -type d -maxdepth 1 -exec echo
    

参照: man find

6
user.dz