Portál AbcLinuxu, 1. května 2025 22:36

Pohyb po adresářích v konzoli

4.8.2010 22:30 | Přečteno: 1749× | Linux | poslední úprava: 4.8.2010 22:25

Jednoho dne jsem se naštval a v práci nainstaloval Ubuntu. Po určitém čase mi připadalo, že mé schopnosti ovládat tento OS nejsou na takové úrovni, jak bych si představoval a tak jsem se přinutil používat konzoli. Nainstaloval jsem Tildu a překryl jí kompletně plochu, takže mám černé panely nahoře a dole a mezitím mi na černém pozadí bliká krásně zelený kursor. Pravdou je, že to každého vyděsí, když to vidí, ale už jsem si na to nějak zvykl (... a příkaz screen je výborná záležitost...).

Po čase jsem ale zjistil, že rychlost pohybu po našem úložišti dat je přímo úměrná rychlosti zápisu dvojteček a lomítek (resp. stiskem tabulátoru) a v tom tkví kouzlo celého problému nebo-li, jak odhadnout přesně místo ukončení sekvence ../../../.., když se mi nechce počítat, na kolikáté úrovni podadresáře jsem. Například, když při pohybu z 15. úrovně se musím přes sedmou (relativní cesta zpět) dostat na jinou 13. úroveň. Řídit se dle pwd, kde i na širokoúhlém 22' monitoru při monospace nastavení písma se dostávám ke konci druhé řádky v terminálu je ztráta času a tak jsem začal používat starý dobrý lidský odhad.

Dnes již mohu směle jít do soutěže "kdo rychleji se dostane zpět z podadresáře", neboť užíváním rychlého dvojstisku klávesy s tečkou a pak tabulátoru se má klávesnice stala přeborkyní v četnosti užívání těchto dvou "magických" kláves v naší firmě a můj odhad je užíváním stále přesnější a přesnější. Škoda jen, že to samé neplatí ve sportce...

Poznámka na závěr: Bohužel se mi nepodařilo dát dohromady skript, který by mě této "úchylárny" zbavil, protože jsem narazil na problém, jak danému terminálu ve skriptu sdělit, že chci do jiného podadresáře?        

Hodnocení: 50 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

otasomil avatar 4.8.2010 22:36 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin

Kdybyste to tak "netopil" tak byste nemel problem.

Bohuzel ve firmach casto delka cesty dosahuje stovek znaku. A nejen tam i doma sou lidi zvykli "topit" co nejhloubej.

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
4.8.2010 22:50 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Já jsem párkrát použil něco jako cd ./xxx/*yy/, ale bohužel třeba v MC mě to nefunguje.
5.8.2010 18:41 disorder | blog: weblog
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
M-tab (kde Meta sa stlaca najskor Esc, pustime a potom zbytok, v textovej konzoli to ide aj ako Alt+tab)
6.8.2010 00:18 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Nemyslel jsem automatický doplňování, na to mě stačí většinou alt-s (M-tab jsem neznal, možná se hodí, akorát jsou to dvě stisknutí). Myslel jsem něco jako tohle v konzoli. Pro malé vzdálenosti by bylo asi efektivnější doplňování, ale pro víc úrovní jednoznačně vede zápis jako tohle:
root@duron:/# cd /z/*/*/*dune*
root@duron:/z/_games/dune/dunelegacy-0.96-src#
7.8.2010 21:54 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
v zsh je krasna konstrukce **, ktera funguje jakozto expander na libovolny podadresar, takze treba vyse uvedeny priklad by sel napsat jako cd /z/**/*dune* jenom clovek nema kontrolu nad hloubkou, kde zsh najde *dune*
„O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."
xkucf03 avatar 4.8.2010 23:47 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
No a? S našimi (linuxovými) souborovými systémy si to můžeme dovolit :-)
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
5.8.2010 16:37 JS
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Nechte me hadat.. Java?
xkucf03 avatar 4.8.2010 23:49 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Proměnné
Odpovědět | Sbalit | Link | Blokovat | Admin
A nepomohlo by si dát často používané cesty do proměnných?

např. export f2010=/home/franta/fotky/2010/

a pak k používat cd $f2010 atd. Ale pokud jsou to pokaždé jiné složky, tak to asi nepomůže.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
5.8.2010 07:26 mkmm | skóre: 11
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
K usnadneni pohybu v adresarich se pouziva promenna prostredi CDPATH. Funguje podobne jako PATH, ale s prikazem cd. A taky pomaha tilda s minusem: prikaz cd ~- skoci do adresare, ve kterem se pracovalo pred poslednim prikazem cd.
5.8.2010 08:07 Václav Kramář | skóre: 31 | Nechanice
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Opravdu cd ~-? Ne náhodou cd -?
vaclav@dt-vk ~ $ pwd
/home/vaclav
vaclav@dt-vk ~ $ cd /usr/bin/
vaclav@dt-vk /usr/bin $ cd -
/home/vaclav
vaclav@dt-vk ~ $ pwd
/home/vaclav
vaclav@dt-vk ~ $
5.8.2010 09:01 mkmm | skóre: 11
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Nojo, bez tildy to funguje taky a navic to udela pwd. S tildou to jenom zmeni adresar a nic nevypisuje.
5.8.2010 12:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Ono to funguje i tak, protože bash bere "~-" jako synonymum pro "$OLDPWD", kam cd ukládá minulý adresář. Varianta "cd -" ale asi bude univerzálnější.
5.8.2010 08:54 Jary | skóre: 30 | blog: Jary má blog | Dům
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Občas se hodí i pushd blabla. Hodí to cestu k aktuálnímu adresáři na stack, přepne se na blabla a popd ze stacku vytáhne ten posledně uložený a přepne se na něj.
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
5.8.2010 13:21 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Přesně tak - pushd a popd jsou fajn příkazy. Rozhodně by si ušetřil to neustálé vypisování relativních cest.

Taky by si mohl nastavit aliasy..

A zcela na závěr: tohle je dvojtečka. Tečky, byť dvě za sebou psané vždy zůstávají tečkami..
5.8.2010 09:07 Honza | skóre: 7 | Brno
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Já v konzoli často používám Midnight Commander. Mám větší přehled o tom, kde jsem, co tam je a kam jít dál. Ve spojení s tím, že skáče na názvy souborů/adresářů jejichž jménu začnu psát, to nemá chybu. Plus samozřejmě pár předdefinovaných cest, kam skáču často, dostupných přes ctrl+|. Občas použiju i alt+c pro rychlou změnu adresáře. Ale je fakt, že se to nedá používat na všechno.
5.8.2010 10:27 mektige
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Já si dávám do home symlinky ke všem často používaným adresářům (případně seskupené v podadresáři podle významu, ať tam nemám bordel). Při jednorázových příležitostech píšu absolutní cesty, spíš než ../../../...
Josef Kufner avatar 5.8.2010 12:20 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Midnight Commander, tukni do ctrl+s a začni psát. V nastavení zapni lynx-like pohyb a pro vylezení do .. stačí mačkat šipku doleva. Pro přepínání do konsole a zpět slouží ctrl+o.

Nic efektivnějšího jsem zatím nenašel.
Hello world ! Segmentation fault (core dumped)
5.8.2010 22:36 janosh | skóre: 8 | blog: janosh_blog | Třebíč
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Než psát něco jako cd ../../../ tak mi vždy přišlo rychlejší pustit třikrát cd .., kdy to člověk píše jen jednou a podruhé a potřetí už mačká jen šipku nahoru a enter.
Linux is like teepee, no windows, no gates, apache inside!
7.8.2010 22:04 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
Rozbalit Rozbalit vše Re: Pohyb po adresářích v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Případně je možné si nadefinovat funkci (funkční v bashi i zsh) následovně:
function cdu { for i in `seq 1 $1`; do cd ..; done;};
Poté např. cdu 4 zvedne adresář o 4 úrovně.
„O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.