1、取得/etiantian文件的权限对应的数字(考试题答案系列)
說明:本文為老男孩linux培訓(xùn)某節(jié)課前考試試題及答案分享博文內(nèi)容的一部分,也是獨立成題的,你可以點下面地址查看全部的內(nèi)容信息。
http://oldboy.blog.51cto.com/2561410/791245
答題的思維比做題本身更重要,就是老男孩如何想到的解決問題的思路。
1.如何取得/etiantian文件的權(quán)限對應(yīng)的數(shù)字內(nèi)容,如-rw-r--r-- 為644,要求使用命令取得644這樣的數(shù)字。
解答:
實踐過程:
[root@oldboy ~]# touch /ett #==>創(chuàng)建測試文件/ett
[root@oldboy ~]# stat /ett #==>通過stat命令可以看到文件的數(shù)字權(quán)限
? File: `/ett'
? Size: 0?????????????? Blocks: 0????????? IO Block: 4096?? regular empty file
Device: 803h/2051d????? Inode: 98211?????? Links: 1
Access: (0644/-rw-r--r--)? Uid: (??? 0/??? root)?? Gid: (??? 0/??? root)
Access: 2012-02-20 08:04:24.000000000 +0800
Modify: 2012-02-20 08:04:24.000000000 +0800
Change: 2012-02-20 08:04:24.000000000 +0800
那么我們?nèi)绾潍@得這一文件的數(shù)字權(quán)限呢?
法一過程:(stat、sed、cut)
[root@oldboy ~]# stat /ett|sed -n '4p'#==>首先通過管道把stat結(jié)果傳給sed處理取出需要的行。
Access: (0644/-rw-r--r--)? Uid: (??? 0/??? root)?? Gid: (??? 0/??? root)
[root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1 #==>對上面的結(jié)果以/線為分割符,然后取第1個字段。這里以斜線分割不是唯一的方法,大家注意下。
Access: (0644
[root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1|cut -d "(" -f2 #==>這就是法一答案
#==>對上面的結(jié)果以(號為分割符,然后取第2個字段,就會得出我們需要的結(jié)果。
0644
特別說明:
1)上題中的sed -n '4p'是取結(jié)果的第二行的意思,也可以用笨辦法head -4|tail -1替代。例:
[root@oldboy ~]# stat /ett|head -4|tail -1|cut -d "/" -f1|cut -d "(" -f2 #==>法二答案
0644
2)上題中的cut -d "/" -f1|cut -d "(" -f2部分,也可以用awk,sed等命令替代。如例:
[root@oldboy ~]# stat /ett|head -4|tail -1|awk -F "/" '{print $1}'|awk -F "(" '{print $2}'
0644 #==>法三答案,awk法如果大家有不懂的,也不用糾結(jié),本文后面問題里會細(xì)講。
提示::此題考察了大家對stat ,cut,awk,head,tail,sed等命令組合用法,有對這些命令還不熟悉的同學(xué),可以分步分批總結(jié)下。
注意:敲字符時成對出現(xiàn)的’’,{}內(nèi)容,最好連續(xù)敲完,以免后續(xù)落下。
法二過程:(stat)
當(dāng)然還有更簡單的方法:
[root@oldboy ~]# stat -c %a /ett
644
注意:如何想到法二的思考過程,比答題更重要。當(dāng)命令結(jié)果包含我們需要的內(nèi)容的時候,我們要想到是否有具體的參數(shù)能夠一步達到我們需要的結(jié)果。
特別說明:
有關(guān)stat -c的用法可以通過stat --help和man stat,info stat,這是所有命令的三大幫助殺手锏,必須要掌握了。
?
[root@oldboy ~]# stat --help
Usage: stat [OPTION] FILE... #==>這是語法格式
Display file or file system status.
...省略部分...
? -f, --file-system???? display file system status instead of file status
? -c ?--format=FORMAT?? use the specified FORMAT instead of the default;
????????????????????????? output a newline after each use of FORMAT
...省略部分...
?
#==>這是可用的參數(shù),如-c。
The valid format sequences for files (without --file-system):
#==>這里是對于文件適用的格式,既-c后接的格式。
??%a?? Access rights in octal #==>以8進制形式顯示,即為本文的答案
? %A?? Access rights in human readable form #==>拓展以人類可讀的形式顯示權(quán)限
? %b?? Number of blocks allocated (see %B)
? %B?? The size in bytes of each block reported by %b
? %d?? Device number in decimal
? %D?? Device number in hex
? %f?? Raw mode in hex
? %F?? File type
? %g?? Group ID of owner
? %G?? Group name of owner
? %h?? Number of hard links
? %i?? Inode number
? %n?? File name
? %N?? Quoted file name with dereference if symbolic link
? %o?? I/O block size
? %s?? Total size, in bytes
...省略部分...
本題的拓展部分:
[root@oldboy ~]# ls -li /ett
98211 -rw-r--r-- 1 root root 0 Feb 20 08:04 /ett
?
[root@oldboy ~]# stat -c %a /ett?
644
[root@oldboy ~]# stat -c %A /ett #==>獲取字符權(quán)限
-rw-r--r--
[root@oldboy ~]# stat -c %B /ett
512
[root@oldboy ~]# stat -c %b /ett
0
[root@oldboy ~]# stat -c %i /ett #==>inode信息
98211
[root@oldboy ~]# stat -c %n /ett
/ett
[root@oldboy ~]# stat -c %o /ett #==>block size
4096
總結(jié)
以上是生活随笔為你收集整理的1、取得/etiantian文件的权限对应的数字(考试题答案系列)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jmmtl10是什么型号
- 下一篇: Windows 8消费者预览版发布啦(附