Я заметил это только сейчас, когда использовал find
и stat
чтобы получить разрешения для всех элементов в /usr/local/share/locale
прежде чем я рекурсивно изменю их. stat
показывает разрешения в числовом формате, с которым я не знаком - все каталоги 40755
и файлы 100644
. Я предполагаю, что последние три являются обычными восьмеричными разрешениями (о которых я уже знаю), но что означают 40
с и 100
с?
1 ответ
3
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 означают, что это каталог.