2つのパスがあるとしましょう。 Path1 は静的で path2 は動的です。
例:
- パス1 = /tmp/folder/
- パス 2=/tmp/folder/dir1/dir1_2
結果:
- 違い = /dir/dir1_2
上記の例を実装したいと思います。
ベストアンサー1
GNUを使用すると、realpath
次のことができます。
$ Path1=/tmp/folder
$ Path2=/tmp/folder/dir1/dir1_2
$ realpath -m --relative-to="$Path1" -- "$Path2"
dir1/dir1_2
POSIX / Kornのようなシェル(bashなど)で、次のコマンドを使用して変数に保存します。
Diff=$(realpath -m --relative-to="$Path1" -- "$Path2")
一般的な注意点は、生成されたパスが改行で終わると正しく機能しないことです。
zsh
対話型の有無にかかわらずbash -O lastpipe
:
realpath -zm --relative-to="$Path1" -- "$Path2" |
IFS= read -rd '' Diff
代わりに使用できます。