私が行った場合
augtool --noautoload --transform "sshd incl /etc/ssh/sshd_config" ls "/files/etc/ssh/sshd_config/"
次に、 のツリー構造を取得します/etc/ssh/sshd_config
が、ここではファイル パスを 2 回書きました。最後に/files
.
質問
ファイルパスのみを指定して同じことを行うことは可能でしょうか?
デフォルトでは、Augeas は認識しているすべてのファイルをロードしますが、これは非常に遅くなる可能性があります。
これを防ぐために、--noautoload
レンズからファイルを自動的にロードすることをバイパスするコマンドを使用します。これにより、Augeas ははるかに高速になりますが、これはもはや認識していないことも意味するため、このファイルをレンズに手動で再度/etc/ssh/sshd_config
マッピングする必要があります。これは.Sshd.lns
--transform Sshd.lns incl /etc/ssh/sshd_config
Augeas が認識している任意のファイルをロードし、他のレンズをバイパスする( augeas-sandboxからの) 別の可能性を次に示します。
#!/bin/sh
FILE=$1
if [ -z "$FILE" ]; then
echo "Usage: $0 <FILE>"
exit 1
fi
augtool -L -i <<EOF
rm /augeas/load/*["$FILE"!~glob(incl) or "$FILE"=~glob(excl)]
load
set /augeas/context /files$FILE
EOF
このスクリプトは autoload ステートメントを使用するため、使用するレンズを指定する必要はありませんが、ファイルに必要なレンズのみをロードし、Augeas を高速化します。さらに、 を設定/augeas/context
するため、相対パスを使用できます。
$ augloadone /etc/ssh/sshd_config
rm : /augeas/load/*["/etc/ssh/sshd_config"!~glob(incl) or "/etc/ssh/sshd_config"=~glob(excl)] 1158
augtool> ls .