stat用法 獲取檔案對應許可權的數字

2021-09-04 02:44:01 字數 3375 閱讀 9756

題目:檔案屬性為-rw-r--r-- 對應許可權為644,如何使用命令獲取許可權對應的數字??

舉例如下:

[baby@localhost ~]$ ll -l

-rw-r--r-- 1 baby wheel 38 oct 12 16:29 1.txt

使用stat命令可以檢視

[baby@localhost ~]$ stat 1.txt

file: `1.txt'

size: 38 blocks: 8 io block: 4096 regular file

device: fd00h/64768d inode: 390954 links: 1

access: (0644/-rw-r--r--) uid: ( 503/ baby) gid: ( 10/ wheel)

access: 2015-10-12 16:29:34.674990005 +0800

modify: 2015-10-12 16:29:32.248990536 +0800

change: 2015-10-12 16:29:32.248990536 +0800

取出對應的數字則需要使用正則sed awk 或cut ,head,tail命令;

方法1:使用正則或命令取

head,tail,cut

[baby@localhost ~]$ stat 1.txt |head -n4|tail -n1|cut -d "/" -f1|cut -d "(" -f2

0644

sed,cut

[baby@localhost ~]$ stat 1.txt |sed -n '4p'|cut -d "/" -f1|cut -d "(" -f2

0644

sed,awk

[baby@localhost ~]$ stat 1.txt |sed -n '4p'|awk -f"/" ''|awk -f"(" ''

0644

方法2:stat -c 命令

[baby@localhost ~]$ stat -c %a 1.txt

644

注意:如何想到法二的思考過程,比答題更重要。當命令結果包含我們需要的內容的時候,我們要想到是否有具體的引數能夠一步達到我們需要的結果。

man stat 檢視幫助

-c --format=format

use the specified format instead of the default; output a new line after each use of format

使用特殊格式代替預設輸出;

常用的引數有如下:

%a access rights in octal         8進製顯示訪問許可權,0644

%a access rights in human readable form         以人類可讀的形式輸出,

%f file type         檔案的型別

%g group id of owner         所屬組gid的號碼

%g group name of owner         所屬組的名稱

%h number of hard links         硬連線的數量

%i inode number         inode的值

%n file name         檔名

%o i/o block size         io塊大小

%s total size, in bytes         檔案的總大小,位元組顯示;

%u user id of owner         所屬主的uid號碼

%u user name of owner         所屬主的名稱

%x time of last access         最後訪問的時間

%x time of last access as seconds since epoch         最後訪問時間的時間戳

%y time of last modification         最後修改的時間

%y time of last modification as seconds since epoch         最後修改時間的時間戳

%z time of last change         最後更改的時間

%z time of last change as seconds since epoch         最後更改的時間的時間戳

使用引數結果如下:

[baby@localhost ~]$ ls -l 1.txt

-rw-r--r-- 1 baby wheel 38 oct 12 16:29 1.txt

[baby@localhost ~]$ stat -c %a 1.txt

644[baby@localhost ~]$ stat -c %a 1.txt

-rw-r--r--

[baby@localhost ~]$ stat -c %b 1.txt

8[baby@localhost ~]$ stat -c %b 1.txt

512[baby@localhost ~]$ stat -c %d 1.txt

64768

[baby@localhost ~]$ stat -c %f 1.txt

regular file

[baby@localhost ~]$ stat -c %g 1.txt

10[baby@localhost ~]$ stat -c %g 1.txt

wheel

[baby@localhost ~]$ stat -c %u 1.txt

503[baby@localhost ~]$ stat -c %u 1.txt

baby

[baby@localhost ~]$ stat -c %h 1.txt

1[baby@localhost ~]$ stat -c %i 1.txt

390954

[baby@localhost ~]$ stat -c %n 1.txt

1.txt

[baby@localhost ~]$ stat -c %o 1.txt

4096

[baby@localhost ~]$ stat -c %s 1.txt

38題目和方法2的思想**於51cto老男孩部落格。非常感謝。

stat用法 獲取檔案對應許可權的數字

題目 檔案屬性為 rw r r 對應許可權為644,如何使用命令獲取許可權對應的數字?舉例如下 linuxidc localhost ll l rw r r 1linuxidc wheel 38oct 1216 291.txt使用stat命令可以檢視 linuxidc localhost stat ...

關於stat的用法

看了個關於stat的帖子 原來還公尺用過滴 在網上查了資料 自己除錯了下 原來stat 是這麼好用哇 以下是 別人的blog 函式都是獲取檔案 普通檔案,目錄,管道,socket,字元,塊 的屬性。函式原型 include int stat const char restrict pathname,...

stat函式的用法

stat函式的用法 標頭檔案 include 函式定義 int stat const char file name,struct stat buf 函式說明 通過檔名filename獲取檔案資訊,並儲存在buf所指的結構體stat中 返回值 執行成功則返回0,失敗返回 1,錯誤 存於errno 需要...