我想对特定目录下的所有文件和子目录设置755权限,但是我只想对不具有755权限的那些组件执行chmod 755。
find /main_directory/ -exec chmod 755 {} \;
如果find命令返回一个长列表,则将花费大量时间。我知道我可以使用stat命令来检查每个组件的八进制文件级别权限,然后使用if-else来切换文件权限,但是是否有任何单行方法使用find并xargs首先检查文件/目录具有的权限,然后将chmod其更改为755(如果设置为其他值)。
                
                6
              
                  这可能是过早的优化,甚至可能无法实现。进行所有这些检查可能会减慢速度。如果您需要做很多事情,那么确保它更快的测试只会带来回报。
                
                
                  
                    —
                    ctrl-alt-delor 
                    
                  
                
              
                  您可能不想授予所有文件执行权限。这将产生安全风险。(这是Microsoft Windows上的病毒载体之一:所有文件都是可执行的)。在符号模式下,您可以说
                
                  
                    —
                    ctrl-alt-delor 
                    
                  
                
              u+rw,go+r,go-w,ugo+X-注意大写字母。
                
                  我同意@ ctrl-alt-delor,但建议的条件更接近您的要求,u = rwX,go = rX应该可以达到相同的目的。
                
                
                  
                    —
                    penguin359 '19