Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: Dr Fuss 29 Června 2022, 15:02:26

Název: Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: Dr Fuss 29 Června 2022, 15:02:26
Dobrý den všem.

Jak zkopírovat kompletní cestu k souboru ?

Jak a v čem (Norton Commander, Midnight Commander, nebo Místa), nebo v (jakém SW), aby, se to snadnoi nechalo "šoupnout" přes Cut (kapsu) do zcela jiného programu ?
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: JirkaZ 29 Června 2022, 15:22:17
Cestu zobrazují třeba Double Commander, Krusader a jistě i další.

Fakt nepobírám, co to je ""šoupnout" přes Cut (kapsu) do zcela jiného programu"...

To jako přes schránku?
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: GdH 29 Června 2022, 15:59:54
Dobrý den všem.

Jak zkopírovat kompletní cestu k souboru ?

Jak a v čem (Norton Commander, Midnight Commander, nebo Místa), nebo v (jakém SW), aby, se to snadnoi nechalo "šoupnout" přes Cut (kapsu) do zcela jiného programu ?

Ve výchozím Soubory stačí na soubor kliknout pravým a v menu na Kopírovat.
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: Dr Fuss 29 Června 2022, 16:12:28
Ano. Zkopírovat kompletní cestu k souboru přes schránku. Přece celou dlouhou cestu si nebudu opisovat tužkou na papír !
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: jmp 30 Června 2022, 13:33:32
pwd by nestačilo?
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: Dr Fuss 30 Června 2022, 14:20:29
Pravda..  pwd v terminálu. To mě nenapadlo. Dík !
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: juwa2 30 Června 2022, 14:24:31
Příkaz pwd řešením rozhodně není, jak každý lehce zjistí - zobrazuje totiž pouze current working directory, nikoli cestu vybrané položky (ať už souboru nebo složky)... :-\

Spolehlivé řešení:
Použít (vytvořit) nautilus script  ~/.local/share/nautilus/scripts/copy_path.sh  s obsahem:
Kód: [Vybrat]
#!/bin/bash
# kopíruje cestu vybrané položky do schránky
readlink -f "$@" | xclip -r

Nezapomenout mu nastavit spustitelnost.
Je třeba mít nainstalovaný balíček xclip. Ideálně verzi 0.13 viz příloha (zohledňuje parametr -r). Jinak bude za každou cestou přidán "nadbytečný prázdný řádek".

Použití:
Stačí označit položku > pravoklik > Skripty > copy_path.sh
Funguje i při výběru více položek naráz. Všechny cesty vybraných položek budou zkopírovány do schránky - co cesta, to jeden řádek.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pokud by měl někdo zájem o skript který kopíruje pouze název vybrané položky (~/.local/share/nautilus/scripts/copy_name.sh):
Kód: [Vybrat]
#!/bin/bash
# kopíruje název vybrané položky vč. přípony do schránky
ls -d "$@" | xargs -n 1 basename | xclip -r

Samozřejmě, tyto skripty jsou použitelné i pro jiné souborové managery (nemo, caja....). Pouze je třeba je nakopírovat do příslušné složky:
Kód: [Vybrat]
~/.local/share/nemo/scripts
~/.config/caja/scripts
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: GdH 30 Června 2022, 17:34:46
S Dr Fussem to tu vždy bylo trochu jako v blázinci, ale tady mám pocit že je to nakažlivé. Proč si psát skripty pro Nautila, když Nautilus (dnes Soubory) vám to do schránky zkopíruje sám? Kliknu pravým, vyberu Kopírovat, nebo označím a stisknu Ctrl+C. Co mi uniká?
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: juwa2 30 Června 2022, 19:12:59
S Dr Fussem to tu vždy bylo trochu jako v blázinci, ale tady mám pocit že je to nakažlivé. Proč si psát skripty pro Nautila, když Nautilus (dnes Soubory) vám to do schránky zkopíruje sám? Kliknu pravým, vyberu Kopírovat, nebo označím a stisknu Ctrl+C. Co mi uniká?

Uniká ti to, že "kopírovat" sice cestu do schránky opravdu zkopíruje, ale zároveň položku "připraví" na kopírování někam (ctrl+v) což rozhodně není totožné a není to vždy žádoucí/potřebné..
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: GdH 30 Června 2022, 20:54:27
S Dr Fussem to tu vždy bylo trochu jako v blázinci, ale tady mám pocit že je to nakažlivé. Proč si psát skripty pro Nautila, když Nautilus (dnes Soubory) vám to do schránky zkopíruje sám? Kliknu pravým, vyberu Kopírovat, nebo označím a stisknu Ctrl+C. Co mi uniká?

Uniká ti to, že "kopírovat" sice cestu do schránky opravdu zkopíruje, ale zároveň položku "připraví" na kopírování někam (ctrl+v) což rozhodně není totožné a není to vždy žádoucí/potřebné..

A on doktor řešil problém s tím, že si Nautilus poznamená, že má ve schránce zdrojovou cestu pro kopírování?
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: Dr Fuss 07 Července 2022, 13:32:51
Pro juwa2:  "Nautilus dnes Soubory" ? To mi přijde jako kdyby se mi časem jméno z Jaroslav změnilo na Matěj. To je holt linux. Změny aby zmátly uživatele. Takové změny pro změny, aby se nemohlo říct že se linux nevylepšuje.

To mc nebo Gnome Commander nemá možnost vzít do schránky kompletní cestu k souboru ???
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: ramael 07 Července 2022, 14:05:55
Jestli jsem dobře pochopil otázku. Tak třeba v mc se proklikej kam potřebuješ. Pak zmáčkni Ctrl+o a tam zadej
Kód: [Vybrat]
echo "$(pwd)/"tvuj_soubor | zcela_jiny_program
EDIT: Typo ::)
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: Dr Fuss 10 Července 2022, 01:42:36
Pro ramael: Nepochopl jsem to. Nefunguje mi to. A navíc se mi to zdá komplikovaný. Přece něco v mc musí neustále registrovat kde jsem momentálně zanořenej, a musí mi to kdykoliv umožnit onu cestu nabrat  do schránky, Total Commander ve Windows to umí od nepaměti !!!
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: Dr Fuss 10 Července 2022, 02:04:00
A co takhle Ctrl-Shift-Enter odborníci ?   ( Funguje v Gnome Commanderu, Midnight Commanderu ) !
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: ramael 10 Července 2022, 10:27:12
Pro ramael: Nepochopl jsem to. Nefunguje mi to. A navíc se mi to zdá komplikovaný. Přece něco v mc musí neustále registrovat kde jsem momentálně zanořenej, a musí mi to kdykoliv umožnit onu cestu nabrat  do schránky, Total Commander ve Windows to umí od nepaměti !!!
Původně se mi nechtělo odpovídat. Ale ok. Myslím si, že názorná ukázka vydá za tisíc slov.
Spusť si terminál, a napiš tam mc a odentruj. Pak stiskni Ctrl+o vyskočí ti vnořený shel v aktuálním adresáři kam jsi se v mc proentroval, u Tebe možná proklikal. Zkus si přepínat mezi panely a vždy když někde budeš, pomocí ctrl+o skoč a vyskoč ze shelu. Abys viděl že to funguje napiš a odentruj si tam pwd.
Pak se proklikej do nějaké složky a tam napiš a odentruj toto:
Kód: [Vybrat]
echo -e $"mc je konzolová aplikace. Proto v ní myšítko nefunguje u každého stejně. Na funkci myšítka má vliv spousta jiných věcí.\nTřeba u mne doktore Noho, vůbec myš v terminálu a tím pádem v mc nefunguje.\nCtrl+Shift+Enter u mne otevře nový terminál!" > lala.txt
Tím jsme vytvořili testovací soubor s názvem lala.txt. Pak si vytvoříme kratičký zkušební "prográmek" vedle toho testovacího souboru. Tím myslím v té samé složce. Prográmek má za úkol vypsat obsah souboru předaný jako parametr.
Kód: [Vybrat]
echo -e $'#! /usr/bin/env bash\n\n[  "$1" ] && soubor=$1 || soubor=$(xargs $1)\n[ -e $soubor ] && { echo "výpis souboru: $soubor"; cat $soubor; }|| echo "!!! $soubor Neexistuje !!!"' > mujprg.sh
Přidáme mu spustitelná práva:
Kód: [Vybrat]
chmod +x ./mujprg.sh
A jdeme testovat. Napiš a odentruj:
Kód: [Vybrat]
./mujprg.sh lala.txt
Ok vypsalo to obsah souboru lala.txt. Jdeme dál navázáním na mou odpověď:
Kód: [Vybrat]
echo "$(pwd)/"lala.txt | ./mujprg.sh
Wauuu, funguje to! A můžeš zkusit i špatné zadání:
Kód: [Vybrat]
echo "$(pwd)/"lala.tx | ./mujprg.sh
Pořád funguje. Je to univerzální návod. Pokud chceš příště něco konkrétnějšího, je třeba to konkrétněji napsat. Třeba jaké prostředí používáš atd. Má odpověď byla jak to udělat v mc univerzálně. Ostatní souborové managery o kterých jsi psal nemám nainstalované a tak nemohu sloužit.
P.S. může se stát, že program kterému chceš předat adresu souboru nechce přijmout argument z roury. To je tento znak |. V tom případě to použij takto: zcela_jiny_program <<< echo "$(pwd)/"tvuj_soubor
Test:
Kód: [Vybrat]
./mujprg.sh <<< echo "$(pwd)/"lala.txt
Sakra, zase to funguje odborníku...

EDIT:
V posledním případě není třeba vůbec použít příkaz echo:
Kód: [Vybrat]
./mujprg.sh <<< $(pwd)/lala.txt
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: Dr Fuss 17 Července 2022, 07:18:50
Pro ramael: To abych měl doktorát z linuxu a uťukal se k smrti..  Proč řešit věci jednoduše, když jdou řešit složitě !
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: GdH 17 Července 2022, 13:10:32
V mc je nejjednodušší postup asi tento, doktore:
Název: Re:Jak zkopírovat kompletní cestu k souboru ?
Přispěvatel: RRRadek Neužil 17 Září 2022, 18:26:45
Já pro nautilus používám tohle.
https://github.com/chr314/nautilus-copy-path
 (https://github.com/chr314/nautilus-copy-path)

(https://raw.githubusercontent.com/chr314/nautilus-copy-path/master/screenshot.png)
 
Můžeš si to i snadno počeštit přepsáním anglických frází
Kód: [Vybrat]
gedit ~/.local/share/nautilus-python/extensions/nautilus-copy-path/translations/en.jsonPak restart nautilus
Kód: [Vybrat]
nautilus -q