Bash
如何在一行中查看 getfacl 輸出
我可以使用以下命令查看所有文件的權限:
$ getfacl -R . # file: . # owner: blueray # group: blueray user::rwx group::rwx other::r-x # file: first-file.adoc # owner: blueray # group: blueray user::rw- group::rw- other::r-- # file: first-dir # owner: blueray # group: blueray user::rwx group::rwx other::r-x
我怎樣才能連續看到這些權限。就像是:
file:first-file.adoc owner: blueray group: blueray user::rw- group::rw- other::r-- dir:first-dir owner: blueray group: blueray user::rwx group::rwx other::r-x
請注意,
getfacl -R .
輸出提及目錄first-dir
為file
.file: first-dir
但它會造成混淆,因為執行 (x) 的含義與文件和目錄不同。PS我知道輸出中可以有超過 6 列
getfacl .
。但是給定的六個對我來說就足夠了。
您可以通過刪除散列和重排“段落”來獲得所需的輸出,同時允許長行:
getfacl -R . | sed 's/^# //' | fmt -w300
不清楚你想用冒號做什麼。如果您想
:
用單個冒號替換所有對,而不修改文件名,請添加相關sed
表達式:getfacl -R . | sed -e 's/^# //' -e 's/: /:/' | fmt -w300
請注意,它
getfacl
使用八進制值表示不可列印的字元(例如換行符為\012
),因此如果您想重新使用它,您可能需要對輸出進行後處理。我認為在
getfacl
’s 的輸出中無法區分文件和目錄。