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:
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.
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:
chmod +x ./mujprg.sh
A jdeme testovat. Napiš a odentruj:
./mujprg.sh lala.txt
Ok vypsalo to obsah souboru
lala.txt. Jdeme dál navázáním na mou odpověď:
echo "$(pwd)/"lala.txt | ./mujprg.sh
Wauuu, funguje to! A můžeš zkusit i špatné zadání:
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_souborTest:
./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:
./mujprg.sh <<< $(pwd)/lala.txt