web-dev-qa-db-ja.com

ターミナルでファイルへのフルパスを表示

ファイルがあります。ターミナルでフルパスをエコーアウトしたいと思います。

どのコマンドでしょうか?

9
Karl Morrison

見つけた:

Sudo apt-get install realpath

次に:

realpath MY_FILE
6
Karl Morrison

readlink-eフラグとともに使用します。ファイルへのフルパスを提供するだけでなく、シンボリックリンクの実際のパスも表示します

$ readlink -e ./out.txt                                                                                                  
/home/xieerqi/out.txt

ファイルのフルパスを取得する必要がある場合は、自分のスクリプトで個人的に使用します

10

ファイルの場所がわからない場合は、findコマンドを使用します。

find / -name MY_FILE

MY_FILEから始まる/のフルパスを出力します。

または、find $PWD -name MY_FILEを使用して現在のディレクトリを検索できます。

MY_FILEの場所がわかっている場合は、MY_FILEを含むフォルダーに移動して、

pwdコマンドは、MY_FILEのフルパスを出力します。

5
Rahul

ファイルへのパスを表示する関数を次に示します。「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への完全な「実際の」パスを表示します。

0
Olivier Dulac