ターミナルで使用するファイルへの完全なパスをすばやく取得するにはどうすればよいですか?
ターミナルにファイルをドラッグアンドドロップするだけです。
readlink -f foo.bar
または(最初にインストールする)
realpath foo.bar
すべての良い答え。別の状況のヒントを以下に示します。
Nautilusを使用してファイルを参照しており、現在のディレクトリの完全なパスが必要な場合は、CTRL+L
を押します。これにより、ブレッドクラムボタンが一時的に古いスタイルのアドレスバーに戻り、パスをコピーできるようになります。
実行可能ファイルの場合、(ターミナルで)実行します:
$ which your_executable
例:$ which ls
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
アイコンをドラッグすることに加えて、ノーチラス(または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句を追加します。
Nautilusでファイルを単純にコピーする場合、フルパスがコピーされます。
それをターミナルに貼り付けます。貼り付けるだけで、次のようになります。
file:///home/juan/2017/agenda20170101.html
右クリックして「ファイル名の貼り付け」を選択すると、次の結果が得られます。
'/home/juan/2017/agenda20170101.html'
示されているように引用符で。
これは、名前ではなくファイルの内容をコピーするWindowsとは異なります。