Як можна швидко отримати повний шлях до файлу для використання в терміналі?
Як можна швидко отримати повний шлях до файлу для використання в терміналі?
Відповіді:
Просто перетягніть файл у термінал.
'/home/alexcohn/.gvfs/…'
Усі хороші відповіді; Ось порада для іншої ситуації.
Якщо ви переглядаєте свої файли за допомогою nautilus і хочете повний шлях до поточного каталогу, натисніть CTRL+L
. Це змінює кнопки сухарі тимчасово назад до адресного рядка старого стилю, що дозволяє скопіювати шлях.
smb://
стиль, тому його не можна повторно використовувати в терміналі.
smb://
-стильний шлях.
Якщо це виконуваний файл, то виконайте (у терміналі):
$ which your_executable
Наприклад: $ which ls
Крім перетягування піктограми, існує декілька способів отримати повний шлях без nautilus (або thunar, konqueror та ін.). Потім ви потрійним клацанням або перетягуванням натискаєте та копіюєте, потенційно зберігаючи це у своєму менеджері буфера обміну * та вставляйте його там, де вам потрібно.
(пасті, кліпер, гліппі, плавник, анамнез)
Ви можете використовувати 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'
locate використовується майже однаково, хоча grep часто більш необхідний:
locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py
Це не найефективніший спосіб набору цього тексту, але зазвичай, якщо я втратив файл, я роблю це ітеративно, додаючи підказки-grep.
Легко робиться в 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
Якщо ви просто скопіюєте файл у Nautilus, то весь шлях буде скопійовано.
Потім вставте його в термінал. Просто вставляючи:
file:///home/juan/2017/agenda20170101.html
Якщо ви клацніть правою кнопкою миші та виберіть "Вставити імена файлів", ви отримаєте:
'/home/juan/2017/agenda20170101.html'
з цитатами, як показано.
Це відрізняється від Windows, що копіює вміст файлу замість його імені.