Знаходимо шлях до файлу в linux - angry teach

Знаходимо шлях до файлу в linux - angry teach

Сьогодні я поділюся тим, як можна викликати повний шлях до файлу або декількох файлів через контекстне меню на моїй Gentoo в Xfce4.
Потрібно зв'язати воєдино кілька програм і прописати результат у вигляді команди в Custom Actions. Є кілька цікавих програм для виклику вікон сповіщень (xmessage, gxmessage і zenity). А як вона зрозуміє дорогу? Знову-таки є багато рішень і ти можеш вибрати більш підходяще для своєї системи. У цьому пості я скористаюся "realpath", тому що не треба пам'ятати перемикачі або шелл синтаксису, а просто дати йому список.
В Custom Actions прописуємо наступну команду:
realpath% N | zenity -text-info
% N - дає список імен обраних мишкою файлів
| - пайп передає інфу далі на zenity
-text-info - видає список, який можна скопіювати (що не трапиться в xmessage)

Однак, що якщо в дорозі є прогалини або спеціальні символи? Тоді висновок від realpath треба пропустити через sed. Ось приклад, в якому є прогалини і дужки:

/ Home / dude / Studies / Computers / Java / GUI / Java Swing (GUI) Programming: From Beginner to Expert / 03 Appendix /

Пропускаючи це через sed:

echo "/ home / dude / Studies / Computers / Java / GUI / Java Swing (GUI) Programming: From Beginner to Expert / 03 Appendix /" | sed -e 's / \ / \\ / g' -e 's / (/ \\ (/ g' -e 's /) / \\) / g'

/ Home / dude / Studies / Computers / Java / GUI / Java \ Swing \ \ (GUI \) \ Programming: \ From \ Beginner \ to \ Expert / 03 \ Appendix /

readlink -f% N | sed -e 's / \ / \\ / g' -e 's / (/ \\ (/ g' -e 's /) / \\) / g' | zenity -text-info

Однак варто зауважити, що не всі програми в Linux будуть сприймати "\" як простий пробіл, тому доведеться скористатися іншими рішеннями (прибрати пробіли в імені файлу взагалі або замінити на% 20). Діліться своїми рецептами!

Схожі статті