Una idea descabellada
Descargo de responsabilidad: Esto será excesivo para la mayoría de ustedes. Pero he estado haciendo esto desde 1995 y tengo las habilidades para hacer que mi mundo sea exactamente como lo quiero. Entonces, ¿por qué no?
Realmente me gusta usar diferentes métodos de clasificación ls
, especialmente -rt
(que está r
ordenado por t
ime siempre modificado ). Entonces, decidí probar algo loco y usar awk para hacer mi clasificación.
# save as ~/.ls.awk
# inpsired by http://superuser.com/questions/448291/how-can-i-make-ls-show-dotfiles-first
{
if($1 == "total"){
print $0
next
}
# may need to adjust $9 to match your name column
if(match($9, /^(\033\[[0-9]*m)*\./)) # optionally look past xterm highlighting like: ^[[34m
df[++dd] = $0
else
nf[++nn] = $0
}
END{
while (++d in df)
print df[d]
while (++n in nf)
print nf[n]
}
Ahora, en lugar de definir un alias bash, defino una función bash (porque los alias solo pueden agregar argumentos al final, pero las funciones pueden usarlos en cualquier lugar)
ll(){ CLICOLOR_FORCE=1 ls -lhA $* | awk -f ~/.ls.awk; }
Para ver los resultados
Creemos algunos archivos de muestra:
for n in 4 .4 3 .3 2 .2 1 .1; do touch $n; sleep 1; done
Usando ls simple
$ ls -lA
total 8
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4
-rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4
$ ls -lArt
total 8
-rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1
Usando mi función que filtra con awk
$ ll
total 8
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4
-rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4
$ ll -rt
total 8
-rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1
Puedes ver mi implementación de esto aquí https://github.com/RichardBronosky/dotfiles/commit/6170c0a9
Lo más importante de esto es que es un marco para ajustar su ls
salida. Puedes hacer lo que quieras con ese filtro awk. Es posible que desee que sean directorios, luego archivos de puntos, luego todo lo demás. Una vez que sepa cómo manejar sus colores xterm, no es demasiado difícil. Depende totalmente de usted.