如何 chown/chmod 当前目录中的所有文件?

And*_*rew 70 linux chmod chown

我正在尝试更改当前目录中某些文件(和目录)的所有权和权限。我试过这个:

chown username:groupname .
Run Code Online (Sandbox Code Playgroud)

...期望它会影响当前目录中的所有文件,而只会影响我所在的目录(这与我想要做的相反)。我想在所有文件上更改它而不影响我所在的当前目录。

如何 chown 和 chmod 当前目录中的所有文件?

Dar*_*oid 114

您想使用chown username:groupname *,并让外壳将 扩展*到当前目录的内容。这将更改当前目录中所有文件/文件夹的权限,但不会更改文件夹的内容。

您也可以执行chown -R username:groupname .,这将更改当前目录的权限,然后在其内部和所有子文件夹中向下递归以更改权限。

chown -R username:groupname *将递归更改所有文件和文件夹的权限,同时保留当前目录本身。这种风格和第一种风格是我发现自己最常使用的风格。

  • 另外,要注意这个时期的危险。因为它就在键盘上的“/”旁边。一个简单的错字很容易把`chown -R username:groupname .` 变成`chown -R username:groupname /`。将 2 秒的任务变成 2 天的噩梦。 (8认同)
  • @Andrew 不过要保持警惕,对于疲惫或毫无准备的人,他既可以是朋友,也可以是敌人。 (2认同)
  • 只是被选为最好、最简洁的答案,尽管我会具体命名目录,只是为了避免键盘滑动:“chown -R 用户名:组名目录名” (2认同)
  • 这不会执行所有文件,它会忽略点文件,这些文件是我无论如何都想 chown 的文件(git 文件需要由我的用户拥有,所以......)我能够用 `chown 修复它-R 用户名:组名./.*` (2认同)

小智 12

我想你想要这个:

chown username:groupname *

如果您还想递归更改子目录,则需要-R(-r已弃用) 开关:

chown -R username:groupname *