Bash

如何在一行中查看 getfacl 輸出

  • January 28, 2022

我可以使用以下命令查看所有文件的權限:

$ 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-dirfile. 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 的輸出中無法區分文件和目錄。

引用自:https://unix.stackexchange.com/questions/688283