変換したい
相対パス -/home/stevin/data/APP_SERVICE/../datafile.txt
に
絶対パス -/home/stevin/data/datafile.txt
これを行うためのUnixの組み込みツール、またはこれを実装する方法についての良いアイデアはありますか?
変換したい
相対パス -/home/stevin/data/APP_SERVICE/../datafile.txt
に
絶対パス -/home/stevin/data/datafile.txt
これを行うためのUnixの組み込みツール、またはこれを実装する方法についての良いアイデアはありますか?
readlink -f /home/stevin/data/APP_SERVICE/../datafile.txt
Unix / Linuxにがあれば、探していることを実行する必要がありますreadlink
。
このようなものはディレクトリに役立ちます:(ファイルの場合は、を追加しますbasename
)
echo $(cd ../dir1/dir2/; pwd)
ファイルの場合、
filepath=../dir1/dir2/file3
echo $(cd $(dirname $filepath); pwd)/$(basename $filepath)
realpath
まだ誰も言及していないことに驚いています。にパスを渡すrealpath
と、パスが正規化されます。
$ ls
Changes
dist.ini
$ ls | xargs realpath
/home/steven/repos/perl-Alt-Module-Path-SHARYANTO/Changes
/home/steven/repos/perl-Alt-Module-Path-SHARYANTO/dist.ini
Thrustmasterの回答に基づいていますが、純粋なbashを使用しています:
THING="/home/stevin/data/APP_SERVICE/../datafile.txt"
echo "$(cd ${THING%/*}; pwd)/${THING##*/}"
もちろん、cd
パスが実際に存在する必要がありますが、常にそうであるとは限りません。その場合、代わりに小さな Python スクリプトを作成することで、おそらくよりシンプルな生活を送ることができます...