首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改文件的chmod,但不更改目录

更改文件的chmod,但不更改目录
EN

Stack Overflow用户
提问于 2009-07-22 05:58:55
回答 3查看 64.1K关注 0票数 75

我需要使用chmod将所有文件递归地更改为664。我想跳过文件夹。我在考虑做这样的事情

代码语言:javascript
复制
ls -lR | grep ^-r | chmod 664

这不起作用,我猜是因为我不能连接chmod,有谁知道一个简单的方法来做这件事?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2009-07-22 06:03:21

另一种方法是使用find ... -exec ...,如下所示:

代码语言:javascript
复制
find . -type f -exec chmod 644 {} \;

问题是-exec会为每个文件启动一个chmod进程,效率很低。避免这种情况的解决方案是:

代码语言:javascript
复制
find . -type f -exec chmod 644 {} +

这将在chmod进程命令行上组装尽可能多的文件名参数。find ... | xargs ...方法与此类似;请参阅公认的答案。

根据记录,如果有太多的文件需要chmoded,或者路径名的聚合长度太大,那么使用反划线将会中断。

票数 33
EN

Stack Overflow用户

发布于 2014-03-24 14:12:27

我简明扼要的两分钱。

Linux:

代码语言:javascript
复制
$ chmod 644 `find -type f`

OSX:

代码语言:javascript
复制
$ chmod 644 `find . -type f`

这会递归地更改当前目录及其所有子目录中包含的所有文件。如果您想以其他目录为目标,请用正确的路径替换.

代码语言:javascript
复制
$ chmod 644 `find /home/my/special/folder -type f`
票数 19
EN

Stack Overflow用户

发布于 2009-07-22 06:49:26

使用GNU find

find /path -type f -exec chmod 644 {} +;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1163294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档