使用 chown 排除特定目录及其内容的 Unix 命令,同时应用对其他目录的权限

发布于 2025-01-09 18:33:21 字数 253 浏览 0 评论 0原文

我使用下面的命令来更改 /opt/var 下的集合目录和文件的所有权(使用 chown),并尝试排除 .snapshot 目录及其内容。

找到/opt/var/! -名称 '.snapshot' | xargs -I {} chown 2000:2000 {};

但是,它仅排除 .snapshot,但其内容获得应用权限。

我在这里错过了什么吗?我正在努力在一行中实现。

I'm using the below command to change the ownership (using chown) of sets directories and files present under a /opt/var and trying to exclude .snapshot directory and its contents.

find /opt/var/ ! -name '.snapshot' | xargs -I {} chown 2000:2000 {};

However, it only excludes .snapshot but its contents get permission applied.

Am I missing anything here? I am trying to achieve in one line.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

痴骨ら 2025-01-16 18:33:21

首先,chmod用于更改权限,而chown用于更改所有者。无论如何,要排除目录,请使用 -path 选项:

find /opt/var/ ! -path '/opt/var/.snapshot*' | xargs -I {} chown 2000:2000 {}

或者

find /opt/var/ ! -path '*.snapshot*' | xargs -I {} chown 2000:2000 {}

First of all, chmod is for changing the permissions while chown is for changing the owners. Anyways, to exclude a directory, use -path option:

find /opt/var/ ! -path '/opt/var/.snapshot*' | xargs -I {} chown 2000:2000 {}

Or

find /opt/var/ ! -path '*.snapshot*' | xargs -I {} chown 2000:2000 {}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文