[megoldva] utoljára módosított fájlra való hivatkozás (bash)

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;)\""

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/

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...

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.

/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.