ファイルがあります。ターミナルでフルパスをエコーアウトしたいと思います。
どのコマンドでしょうか?
見つけた:
Sudo apt-get install realpath
次に:
realpath MY_FILE
readlink
を-e
フラグとともに使用します。ファイルへのフルパスを提供するだけでなく、シンボリックリンクの実際のパスも表示します
$ readlink -e ./out.txt
/home/xieerqi/out.txt
ファイルのフルパスを取得する必要がある場合は、自分のスクリプトで個人的に使用します
ファイルの場所がわからない場合は、find
コマンドを使用します。
find / -name MY_FILE
MY_FILE
から始まる/
のフルパスを出力します。
または、find $PWD -name MY_FILE
を使用して現在のディレクトリを検索できます。
MY_FILE
の場所がわかっている場合は、MY_FILE
を含むフォルダーに移動して、
pwd
コマンドは、MY_FILE
のフルパスを出力します。
ファイルへのパスを表示する関数を次に示します。「fpath = ....」の部分が必要な場合がありますか?
pathtofile () { : "gives full path to files given in parameters.";
for f in "$@"; do
fpath="$(
cd -P "$(dirname "$f")" && \
printf '%s\n' "$(pwd)/$(basename "${f}")" || \
{ echo "__An error occured while determining path to file: '${f}'."\
"Maybe your user can't access its directory, most likely?__"
} )"
printf "Full path to: %s\n is: %s\n" "'${f}'" "'${fpath}'";
done
}
で使用:
pathtofile file1 ../file2 /some/pathwithsymlink/file3
重要な部分:cd -P somedir:somedirへの完全な「実際の」パスを表示します。