Как вы можете быстро получить полный путь к файлу для использования в терминале?

Как быстро получить полный путь к файлу для использования в терминале?

47
задан 27 November 2018 в 12:32

7 ответов

readlink -f foo.bar

или (установите сначала)

realpath foo.bar
0
ответ дан 27 November 2018 в 12:32

Все хорошие ответы; Вот подсказка для другой ситуации.

Если вы просматриваете файлы с помощью nautilus и хотите получить полный путь к текущему каталогу, нажмите CTRL+L. При этом кнопки хлебных крошек временно возвращаются к адресной строке старого стиля, что позволяет копировать путь.

0
ответ дан 27 November 2018 в 12:32

Если это исполняемый файл, выполните (в терминале):

$ which your_executable

Например: $ which ls

0
ответ дан 27 November 2018 в 12:32

Просто перетащите файл в терминал.

0
ответ дан 27 November 2018 в 12:32

В дополнение к перетаскиванию значка существует несколько способов получить полный путь без наутилуса (или thunar, завоеватель, и др.). Вы были бы затем тройной щелчок, или перетащите щелчок и скопируйте, потенциально сохранив это в Вашем менеджере по буферу обмена*, и вставьте его, где Вам нужно.
(pastie, ограничитель, glippy, glipper, воспоминание)

  • Можно использовать find в каталоге выше Вашего файла. (Если Вы не знаете, где это, запустите, где Ваша оболочка отбрасывает Вас, [обычно] в верхней части Вашего корневого каталога.)
    find . | egrep filename

  • Можно использовать locate получить имя файла. (Выполненный sudo updatedb если это не было недавно сделано.)

Более реалистический пример находки использования был бы чем-то как:

$ 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'

найдите используется почти такой же путь, хотя grep часто более необходим:

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

Это не самый эффективный способ ввести это, но обычно если я потерял файл, я делаю это многократно, добавляя grep пункты, когда я иду.

1
ответ дан 27 November 2018 в 12:32

Легко сделанный в использовании Python os.realpath() функция:

$ 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
ответ дан 27 November 2018 в 12:32

Если вы просто скопируете файл в Nautilus, то будет скопирован полный путь.
Затем вставьте его в терминал. Просто вставив, вы получите:

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

Если вы щелкните правой кнопкой мыши и выберите «Вставить имена файлов», то вы получите:

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

с кавычками, как показано. ] Это отличается от Windows, которая копирует содержимое файла вместо его имени.

0
ответ дан 27 November 2018 в 12:32

Другие вопросы по тегам:

Похожие вопросы: