Як можна швидко отримати повний шлях до файлу для використання в терміналі?
Як можна швидко отримати повний шлях до файлу для використання в терміналі?
Відповіді:
Просто перетягніть файл у термінал.
'/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, що копіює вміст файлу замість його імені.