getfaclが絶対パス名から先行/を削除するのはなぜですか?

getfaclが絶対パス名から先行/を削除するのはなぜですか?

CentOS / Red Hat 6でACLを学んでいます。getfacl絶対パスで実行すると、次の結果が表示されます。

getfacl:絶対パス名から先行する "/"を削除する

これはなぜ必要ですか?いつ-pまたはスイッチを使用する必要がありますか--absolute-names

Wale SoyinkaとMichael Zhangが書いた私の本では、これについて言及しなくても、マニュアルページでも手がかりが見つからず、この警告を直接扱うサイトも見つからないようです。

ベストアンサー1

マニュアルページからgetfacl

-p, --absolute-names
       Do not strip leading slash characters (`/'). The  default  behavior
       is to strip leading slash characters.

スイッチを使用せずに絶対パスを指定すると、警告メッセージが表示されます-p

コマンドに絶対パスを指定すると、出力が異なりますgetfacl

スイッチなし-p

$ getfacl /path/foo/bar
getfacl: Removing leading '/' from absolute path names
# file: path/foo/bar
[Output truncated...]

ファイルパスの先行スラッシュは、-pスイッチを使用する場合にのみ表示されます。

$ getfacl -p /path/foo/bar
# file: /path/foo/bar
[Output truncated...]

-pさらなる処理のために出力をパイピングするときに先行スラッシュを維持することが有用です。

コマンドに相対パスを指定すると、出力は同じになりますgetfacl

$ getfacl bar
# file: bar
[Output truncated...]

変更なし:

$ getfacl -p bar
# file: bar
[Output truncated...]

おすすめ記事