web-dev-qa-db-ja.com

ターミナルで使用するファイルへの完全なパスをすばやく取得するにはどうすればよいですか?

ターミナルで使用するファイルへの完全なパスをすばやく取得するにはどうすればよいですか?

46
Olivier Lalonde

ターミナルにファイルをドラッグアンドドロップするだけです。

31
Olivier Lalonde
readlink -f foo.bar

または(最初にインストールする)

realpath foo.bar
42
spennig

すべての良い答え。別の状況のヒントを以下に示します。

Nautilusを使用してファイルを参照しており、現在のディレクトリの完全なパスが必要な場合は、CTRL+Lを押します。これにより、ブレッドクラムボタンが一時的に古いスタイルのアドレスバーに戻り、パスをコピーできるようになります。

11
Sicco

実行可能ファイルの場合、(ターミナルで)実行します:

$ which your_executable

例:$ which ls

3
perseo22

os.realpath()関数を使用して、pythonで簡単に実行できます。

$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/                                      
/mnt/HDD/VirtualBox VMs

関連する回答 から、readlinkを使用することもできます

$ readlink -e ./out.txt                                                                                                  
/home/username/out.txt
1

アイコンをドラッグすることに加えて、ノーチラス(またはthunar、konquerorなど)なしでフルパスを取得する方法がいくつかあります。次に、トリプルクリックまたはクリックアンドドラッグしてコピーし、クリップボードマネージャー*に保存して、必要な場所に貼り付けます。
(pastie、klipper、glippy、glipper、anamnesis)

  • ファイルの上のディレクトリでfindを使用できます。 (どこにあるかわからない場合は、シェルをドロップする場所から開始します。[一般的に]ホームディレクトリの最上部で。)
    find . | egrep filename

  • locateを使用してファイル名を取得できます。 (最近実行されていない場合は、Sudo updatedbを実行します。)

Findを使用するより現実的な例は、次のようなものです。

$ find | egrep askubuntu | grep txt
./askubuntu-temp.txt
./drDocuments/web/meta.askubuntu.txt
./other/stuff/askubuntu.txt.iteration.1
./other/stuff/askubuntu.txt.iteration.2
[...]

好きではないものを切り取るには、例えば:

find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'

locateはほぼ同じ方法で使用されますが、grepの方が頻繁に必要です。

locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py

これはこれを入力するのに最も効率的な方法ではありませんが、通常、ファイルを紛失した場合は、繰り返してこれを繰り返し、grep句を追加します。

1
belacqua

Nautilusでファイルを単純にコピーする場合、フルパスがコピーされます。
それをターミナルに貼り付けます。貼り付けるだけで、次のようになります。

file:///home/juan/2017/agenda20170101.html

右クリックして「ファイル名の貼り付け」を選択すると、次の結果が得られます。

'/home/juan/2017/agenda20170101.html'

示されているように引用符で。
これは、名前ではなくファイルの内容をコピーするWindowsとは異なります。

0
Juan Lanus