日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1、取得/etiantian文件的权限对应的数字(考试题答案系列)

發布時間:2023/12/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1、取得/etiantian文件的权限对应的数字(考试题答案系列) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:本文為老男孩linux培訓某節課前考試試題及答案分享博文內容的一部分,也是獨立成題的,你可以點下面地址查看全部的內容信息。
http://oldboy.blog.51cto.com/2561410/791245
答題的思維比做題本身更重要,就是老男孩如何想到的解決問題的思路。

1.如何取得/etiantian文件的權限對應的數字內容,如-rw-r--r-- 644,要求使用命令取得644這樣的數字。

解答:


實踐過程:

[root@oldboy ~]# touch /ett #==>創建測試文件/ett

[root@oldboy ~]# stat /ett #==>通過stat命令可以看到文件的數字權限

? 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

那么我們如何獲得這一文件的數字權限呢?

法一過程:(statsedcut

[root@oldboy ~]# stat /ett|sed -n '4p'#==>首先通過管道把stat結果傳給sed處理取出需要的行。

Access: (0644/-rw-r--r--)? Uid: (??? 0/??? root)?? Gid: (??? 0/??? root)

[root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1 #==>對上面的結果以/線為分割符,然后取第1個字段。這里以斜線分割不是唯一的方法,大家注意下。

Access: (0644

[root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1|cut -d "(" -f2 #==>這就是法一答案

#==>對上面的結果以(號為分割符,然后取第2個字段,就會得出我們需要的結果。

0644

特別說明:

1)上題中的sed -n '4p'是取結果的第二行的意思,也可以用笨辦法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法如果大家有不懂的,也不用糾結,本文后面問題里會細講。

提示::此題考察了大家對stat ,cut,awk,head,tailsed等命令組合用法,有對這些命令還不熟悉的同學,可以分步分批總結下。

注意:敲字符時成對出現的’’,{}內容,最好連續敲完,以免后續落下。

法二過程:(stat

當然還有更簡單的方法:

[root@oldboy ~]# stat -c %a /ett

644

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

特別說明:

有關stat -c的用法可以通過stat --helpman statinfo 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

...省略部分...

?

#==>這是可用的參數,如-c

The valid format sequences for files (without --file-system):

#==>這里是對于文件適用的格式,既-c后接的格式。

??%a?? Access rights in octal #==>8進制形式顯示,即為本文的答案

? %A?? Access rights in human readable form #==>拓展以人類可讀的形式顯示權限

? %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 #==>獲取字符權限

-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

總結

以上是生活随笔為你收集整理的1、取得/etiantian文件的权限对应的数字(考试题答案系列)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。