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

Unix command to exclude a particular directory and its contents using chown, while permission to other directories are applied

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

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

但是,它只排除 .snapshot 但其内容已获得许可。

我在这里遗漏了什么吗?我正在努力实现一条线。

首先,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 {}