web-dev-qa-db-ja.com

Mac OSXターミナルでフルファイル名を含むファイルのフルパスを表示するにはどうすればいいですか?

'ls'はファイル名を表示できます。

ls config.inc.php
config.inc.php 

'pwd'は現在のフォルダのフルパスを表示します。

pwd
/Application/XAMPP/xamppfiles/phpmyadmin

それらをまとめることができるコマンドがあるかどうか、示すことができるでしょう:

/Application/XAMPP/xamppfiles/phpmyadmin/config.inc.php
34
Rob L

ここから: https://stackoverflow.com/a/4031502/804713

macportsとhomebrewは、greadlink(GNU readlink)を含むcoreutilsパッケージを提供しています。 mackb.comのMichael Kallweitt投稿へのクレジット

bREWインストールcoreutils

greadlink -f file.txt

28
stephenbez

それには多くの方法があります。これはあなたのために働くかもしれない一つの例です:

claw:~ jonv$ echo `pwd`/`ls config.in.php`
/Users/jonv/config.in.php

もっと例が欲しいのなら、stackoverflowで この 投稿に束があります。

19
yoonix

Mac OSXでは、次の手順を実行してください。

  1. ターゲットファイルのディレクトリへのcd
  2. 次の端末コマンドのいずれかを入力してください。
ls "`pwd`/file.txt"
echo $(pwd)/file.txt
  1. file.txtを実際のファイル名に置き換えます。
  2. 押す Enter
6
Mowzer

完全なパスですべてのファイルをリストするために "find"コマンドを使うこともできます。

find DirectoryName -type f

または単に次のように:

find . -type f
2
Mireia

あなたが必要とする以上のものが欲しかったので、../../readme.mdのような相対ディレクトリ内のファイルについても質問できるようにする必要があり、結果は/Users/santi/readme.mdのようなものになるはずです。

そこで、次の内容のlsfという$PATHの一部であるフォルダーに(実行可能)スクリプトを作成しました。

#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )

したがって、次のように使用できます。

santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md 
/Users/santi/p/readme.md

警告を与えるパラメータはありません

santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md

偽のディレクトリから警告が表示されます(dirnameのため)

santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakedir/readme.md
/Users/santi/bin/lsf: line 5: cd: ../../fakedir: No such file or directory

偽のファイルですが、実際のディレクトリは警告しません(必要に応じて検証を追加できます)

santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakefile.md 
/Users/santi/p/fakefile.md
2
santiago arizti

与えられた解決策のどれも好きではなかったので、私は https://stackoverflow.com/a/22684652/953327 に基づいて自分自身で作り上げました

単にpwdls $1を組み合わせた関数呼び出しであるエイリアスを作成します。選択した場合は、これを.bash_profileに追加できます。

alias lsf='function _lsf(){ echo "$(pwd)/$(ls $1)"; };_lsf'

使用例

lsf registry.lock
-> /tmp/registry.lock

私は "list full"または "list file"にlsfを選びました、私には意味がありますが、自由に変更してください。

1
FGreg

以下は、作業ディレクトリ内でfile.txtと一致するファイルを見つけ、その絶対パスを返します。

find `pwd` -name file.txt
0
mark