如果我这样做
augtool --noautoload --transform "sshd incl /etc/ssh/sshd_config" ls "/files/etc/ssh/sshd_config/"
然后我得到了/etc/ssh/sshd_config
的树结构,但是在这里我写了两次文件路径,最后一次以/files
为前缀。
问题
是否可以这样做,但只指定文件路径?
答案 0 :(得分:3)
默认情况下,Augeas会加载它知道的所有文件,这可能会很慢。
为防止这种情况发生,您的命令会使用--noautoload
来绕过自动从镜头加载文件。虽然这使得Augeas更快,但也意味着它不再了解/etc/ssh/sshd_config
,因此您需要再次手动将此文件映射到Sshd.lns
镜头,这是通过{{1 }}
这是另一种可能性(来自augeas-sandbox)加载Augeas已知的任何文件并绕过其他镜头:
--transform Sshd.lns incl /etc/ssh/sshd_config
此脚本将使用自动加载语句,因此您不必指定要使用的镜头,但它只会为您的文件加载所需的镜头,从而使Augeas更快。此外,它设置#!/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
,因此您可以使用相对路径:
/augeas/context