長いパスを誤って入力したり、存在しないパスのログファイルエントリを受け取ったりすることがよくあります。一致するパスが見つかるまでパス階層をナビゲートできるコマンドまたはシェル関数はありますか?
コマンドライン交換は次のとおりです。
$ ls /var/lib/my/supper/complicated/path
File or directory not found
$ fixpath /var/lib/my/supper/complicated/path
Found /var/lib/my
ボーナス機能を使用すると、類似性の検出が役に立ちます。
$ fixpath /var/lib/my/supper/complicated/path
Found /var/lib/my
Did you mean /var/lib/my/super/complicated/path
ベストアンサー1
$ fixpath /home/user/docus/collection/unix/djakl/jfkdsl/dfjksld/fsdkl
Found /home/user/docus/collection/unix
$ type fixpath
fixpath is a function
fixpath ()
{
CURDIR="$PWD";
DIR="$1";
E=1;
while [ $E -eq 1 ]; do
cd "$DIR" 2> /dev/null && {
E=0;
echo Found "$DIR"
} || {
DIR="${DIR%/*}";
DIR="${DIR:-/}"
};
done;
cd "$CURDIR"
}
ほとんどの最新のシェルは、自己類似性の自動修正を実行できます。少なくともbashとzshの場合です。