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

1 ответ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 означают, что это каталог.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .