「..」を含むパスの簡略化

「..」を含むパスの簡略化

..親ディレクトリ()参照を含むパスを単純化したいが、絶対パスにはしません。

たとえば、そのようなパスはその部分が1だけ相殺されるため、foo/bar/../baz単純化する必要があります。foo/bazbar/..


1厳密に言えば、bar他の場所のシンボリックリンクであれば、これは正しくありません。しかし、これを無視しても構いません。単純化によって返された結果は、シンボリックリンクが存在する元のパスとは異なります。

ベストアンサー1

私はあなたが探しているものが次のようになると思いますrealpath

$ realpath --relative-to="$PWD" "foo/bar/../baz"
foo/baz

また、シンボリックリンクでも機能し、-s以下を使用して無視します。

-s, --strip, --no-symlinks はシンボリックリンクを拡張しません。

おすすめ記事