Unix 将文件权限设置为另一个文件

Sta*_*tan 2 unix

有没有办法让文件A与文件B具有完全相同的文件权限,而不需要像777这样的指定权限。例如,通常我ls文件B并检查其权限设置。然后'chmod ??? 文件A'。但是,我正在寻找类似的命令

chmod --argument_to_copy_file_permission fileA fileB

请指教。

编辑:顺便说一下,是否有任何命令可以在数字模式下查看文件权限(如 777),谢谢。

Mic*_*ael 5

chmod --reference=fileA fileB应该根据联机帮助页进行操作


cHa*_*Hao 5

这适用于 Linux;我不确定程序或选项是否是 POSIX。

chmod `stat -c '%a' fileB` fileA
Run Code Online (Sandbox Code Playgroud)

在 Mac OSX 上,以下工作大致相同,但使用有效的选项。:)

chmod `stat -f '%Op' fileB` fileA
Run Code Online (Sandbox Code Playgroud)

(这是一个大写的“o”,而不是零。)

同样,我不知道那是否是 POSIX。我知道它在 Linux 上不起作用;-f 选项在那里意味着完全不同的东西。

无论哪种方式,这两个命令都通过stat在 fileB 上获取命令的输出来工作,特别是八进制格式的文件模式,并将其用作在 fileA 上设置的模式。这意味着反引号之间的内容将为您提供文件模式。