web-dev-qa-db-ja.com

ACLが設定されたファイルを検索する

いくつかの拡張ACLが設定されているすべてのファイル、つまり+で示される許可フラグの最後に小さなls -lが設定されているすべてのファイルを見つけるにはどうすればよいですか。

findに対応するフラグが見つかりませんでした。私の素朴なアプローチは、findls -lgrepと組み合わせたものです。しかし、これはいいとは思いません。

誰かがアイデアを持っていますか?

15

getfaclはACLを再帰的にダンプでき、--skip-baseACLのないファイルを無視するためのオプション。

getfacl -R -s -p /directory | sed -n 's/^# file: //p'
15
user1686

-R:すべてのファイルとディレクトリのACLを再帰的にリストします。

-s:基本ACLエントリーのみを持つファイル(所有者、グループ、その他)をスキップします。

getfacl -Rs .
getfacl --recursive --skip-base .
0
Steely Wing

私はこれが反対のグーグルであることに気づきました。 ACLが設定されていないファイルを検索します。これは私が最終的に得たものです(他のグーグルがそれを見つけた場合に備えて)

ls --color=auto -lR | grep -v "\+ " | grep -v "^[.,a-z,1-9]" | grep -v "^$"

どうやらls -Rはfindよりも高速です(私は数千万のファイルを持っており、各findコマンドには2時間かかります)。

0
matiu

Perlバージョン:

getfacl -R -p -s  / | Perl -wn -e ' if (/^# file/) { s|^# file: /||; print; }'
0
Nicola Mingotti