我刚才注意到了这一点,在使用find
和获取之前stat
的所有项目的权限时/usr/local/share/locale
递归地改变它们.stat
以我不熟悉的数字格式显示权限 - 所有目录都是40755
,文件是100644
。我猜最后三个只是普通的八进制权限(我已经知道了),但是40
s 和100
s 是什么意思?
答案1
stat(1)
主要是的包装器stat(2)
,并且的手册页stat(2)
显示了这一点:
The status information word st_mode has the following bits:
#define S_IFMT 0170000 /* type of file */
#define S_IFIFO 0010000 /* named pipe (fifo) */
#define S_IFCHR 0020000 /* character special */
#define S_IFDIR 0040000 /* directory */
#define S_IFBLK 0060000 /* block special */
#define S_IFREG 0100000 /* regular */
#define S_IFLNK 0120000 /* symbolic link */
#define S_IFSOCK 0140000 /* socket */
#define S_IFWHT 0160000 /* whiteout */
#define S_ISUID 0004000 /* set user id on execution */
#define S_ISGID 0002000 /* set group id on execution */
#define S_ISVTX 0001000 /* save swapped text even after use */
#define S_IRUSR 0000400 /* read permission, owner */
#define S_IWUSR 0000200 /* write permission, owner */
#define S_IXUSR 0000100 /* execute/search permission, owner */
因此前导 100 表示它是一个常规文件,前导 40 表示它是一个目录。