web-dev-qa-db-ja.com

「find」コマンドを使用してファイルの絶対パスを取得します

検索されているファイルの絶対パスを取得する方法はありますか?

例えば:

find .. -name "filename"

../filenameのような結果が得られますが、完全なパスが必要です。

必要なのは、後で別のスクリプトで使用する特定のファイルの親ディレクトリとその子を見つけることです。

ありがとう

23
JorgeeFG

次のようなものを試してください:

find "$(cd ..; pwd)" -name "filename"
14
Scrutinizer

find-execオプションを使用してみてください。

find .. -name "filename" -exec readlink -f {} \;

注:readlinkは、シンボリックリンクまたは正規のファイル名の値を出力します。

11
Sylvain Pineau

最も簡単な方法は

find "$(pwd -P)" -name "filename"
7
Vivek

bashのTilde Expansionを使用して、現在の作業ディレクトリの絶対パスを取得できます。これにより、findは結果の絶対パスも出力します。

find ~+ -type f -name "filename"

~/Desktopで実行された場合、これは

find /home/yourusername/Desktop -type f -name "filename"

次のような結果を出力します。

/home/yourusername/Desktop/filename
4
dessert

また、PWDを使用すると、完全なディレクトリを表示できます。 Pwdは、ファイル名の展開のように、あなたがいるすべてのディレクトリを表示します。これが役に立てば幸いです。

1