如何为文件和文件夹分别设置不同的权限?

如何为文件和文件夹分别设置不同的权限?

我只想644对当前目录中的所有文件应用权限,并且755只对当前目录中的子目录应用权限chmod

答案1

使用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是命令的结束,因为您可以find在其后添加其他选项-exec(这样它们就不会混淆)。尝试:

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

参考:man find

相关内容