2021-05-12 14:32:11
stat用法:獲取檔案對應許可權的數位
題目:檔案屬性為-rw-r--r-- 對應許可權為644,如何使用命令獲取許可權對應的數位??
舉例如下:
[linuxidc@localhost ~]$ ll -l
-rw-r--r-- 1 linuxidc wheel 38 Oct 12 16:29 1.txt
使用stat命令可以檢視
[linuxidc@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/ linuxidc) 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
[linuxidc@localhost ~]$ stat 1.txt |head -n4|tail -n1|cut -d "/" -f1|cut -d "(" -f2
0644
sed,cut
[linuxidc@localhost ~]$ stat 1.txt |sed -n '4p'|cut -d "/" -f1|cut -d "(" -f2
0644
sed,awk
[linuxidc@localhost ~]$ stat 1.txt |sed -n '4p'|awk -F"/" '{print $1}'|awk -F"(" '{print $2}'
0644
方法2:stat -c 命令
[linuxidc@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 最後更改的時間的時間戳
使用引數結果如下:
[linuxidc@localhost ~]$ ls -l 1.txt
-rw-r--r-- 1 linuxidc wheel 38 Oct 12 16:29 1.txt
[linuxidc@localhost ~]$ stat -c %a 1.txt
644
[linuxidc@localhost ~]$ stat -c %A 1.txt
-rw-r--r--
[linuxidc@localhost ~]$ stat -c %b 1.txt
8
[linuxidc@localhost ~]$ stat -c %B 1.txt
512
[linuxidc@localhost ~]$ stat -c %d 1.txt
64768
[linuxidc@localhost ~]$ stat -c %F 1.txt
regular file
[linuxidc@localhost ~]$ stat -c %g 1.txt
10
[linuxidc@localhost ~]$ stat -c %G 1.txt
wheel
[linuxidc@localhost ~]$ stat -c %u 1.txt
503
[linuxidc@localhost ~]$ stat -c %U 1.txt
linuxidc
[baby@localhost ~]$ stat -c %h 1.txt
1
[linuxidc@localhost ~]$ stat -c %i 1.txt
390954
[linuxidc@localhost ~]$ stat -c %n 1.txt
1.txt
[linuxidc@localhost ~]$ stat -c %o 1.txt
4096
[linuxidc@localhost ~]$ stat -c %s 1.txt
38
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-11/125326.htm
相關文章