Gyakran adódik olyan helyzet, hogy egy könyvtárban teszek-veszek (parancssorból), és a legutóbb módosított fájl lesz a következő művelet alanya. Ilyenkor (ha elfelejtettem a fájlnevet) kiadok egy ls -ltr parancsot, kimásolom egérrel az utolsó fájlt, majd beragasztom a helyére. Ezt szeretném valahogy megspórolni. Van erre frappáns, rövid megoldás? Tehát pl. hogy az
ezttedd $OVELE
parancsban az $OVELE legyen a könyvtárban utoljára módosított fájl (mondjuk egy gombkombinációra lefutó parancs után)?
Megoldás:
Mivel nálam nincs .bash_profile, betettem a /etc/bash.bashrc-be rootként:
function lf() { ls -1 -t -p | grep -v "/$" | head -n 1; }
function lf2() { ls -1 -t -p | grep -v "/$" | head -n 2 | tail -n 1; }
Így "`lf`" megadja az utolsó fájlt, "`lf2`" pedig az utolsó előttit. Köszönet mindenkinek, aki segített! (Sajnos kell idézőjel is az esetleges szóköz miatt.)
Szerk 2017: még egyszerűbb megoldás a bind használata, pl. Alt+q-hoz kötve és .bashrc-be írva: bind '"\eq"':"\"$(ls -1 -t -p | grep -v "/$" | head -n 1;)\""
- 1832 megtekintés
Hozzászólások
echo $_
;)
szerk.: ja nem ez az utolsó parancs ...
akkor ez: ls -1t| tail -1
esetleg csinálhatsz rá egy aliast
----
올드보이
http://molnaristvan.eu/
- A hozzászóláshoz be kell jelentkezni
Igen, ez ügyes! (így: ls -1tr) Köszi!
Már csak azt nem tudom, hogy lehet-e bash-ra vonatkozóan gombkombinációt definiálni valahogy. Mert ha csak úgy megadok egy gombkombinációt, azt többnyire az ablakkezelő fogja átvenni, így nem tudok exportálni változót az adott bash munkamenetembe...
- A hozzászóláshoz be kell jelentkezni
Igaz nem az utoljára módosított fáj, de hátha segít:
ESC-.
Az előző parancs utolsó paraméterét illeszti be.
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
Megcsináltam: alias ut='$(ls -tr1 | tail -n1)' - és hogyan használjam?
- A hozzászóláshoz be kell jelentkezni
bocs, közben rájöttem hogy nem jó.
- A hozzászóláshoz be kell jelentkezni
Ok, azért köszi az ötletet!
- A hozzászóláshoz be kell jelentkezni
Mégis működik :)
alias ut='(ls -tr1 | tail -1)'
ls -ld `ut`
echo `ut`
- A hozzászóláshoz be kell jelentkezni
/bin/bash alatt lehet csinalni effelet is:
function lastfile() { ls -1 -t | head -n 1; }
Es akkor a `lastfile` parancs mint olyan mindig ki fogja irni az utoljara turk'aszott file-t. es ezt kesobb mas szkriptekbe is beepitheted. Ha meg azt szeretne'd hogy eme parancs mindig alapertelmezesben rendelkezesedre alljon, akkor masold be a .bashrc es/vagy .bash_profile file-odba.
- A hozzászóláshoz be kell jelentkezni
Vagy ha könyvtárakat ki kell zárni és mindenképp fájl kell, akkor a tiéd alapján még ez jutott eszembe:
ls -t1p | grep -v "/$" | head -n1
Így ha nincs file, akkor üres string az eredmény.
- A hozzászóláshoz be kell jelentkezni
Szuper ötletek, köszi mindenkinek!
- A hozzászóláshoz be kell jelentkezni