chmod 文件仅在所有子目录中

net*_*tic 67 chmod

请有人帮助我使用 chmod,我有以下文件结构

-dir1
--file1
--file2
--dir1a
---file1a1
---file1a2
--dir1b
---file1b1
---file1b2
Run Code Online (Sandbox Code Playgroud)

如何chmod 655到 dir1 和所有子目录下的所有文件?因此,所有文件都将具有 655 权限,并且所有目录将保持原样。

谢谢

enz*_*tib 135

更好用

find . -type f -exec chmod 655 -- {} +
Run Code Online (Sandbox Code Playgroud)

如果文件名包含空格或以破折号开头,@sagarchalise 提出的另一个解决方案将不起作用。

  • 相关地,要 chmod 所有目录,您可以使用 `find 。-type d -exec chmod 755 {} +` 将所有目录更改为 755。 (20认同)
  • @Brettski:`+` 符号由`find` 扩展到文件路径列表(或其中的一部分,如果太长)。 (5认同)
  • - 是什么? (4认同)
  • `--` 表示命令行选项的结束。这可以防止以连字符开头的文件被解释为命令行选项,因为它会出现在 `--` 之后。 (4认同)
  • + 有什么用? (3认同)

sag*_*ise 10

我想进去dir1然后

find . -type f | xargs chmod 655

会做的伎俩。

  • 为了完整起见,将其更改为 find 。-type f -print0 | xargs -0 chmod 655 可以解决我认为的空间问题,尽管@enzotib 的回答更简洁 (4认同)