Cómo ordenar archivos por fecha en la lista de finalización de pestañas

9
$ 7z l ~ / Descargas /Tab

¿Cómo hacer que la lista resultante se ordene por fecha, no por nombre?

Actualmente utilizo un script especial para enumerar N archivos más recientes en un directorio determinado (y copiar el nombre de archivo manualmente en la línea de comando), pero quiero que sea más sencillo y conveniente.

Vi.
fuente
44
Fácil en zsh . No sé si es posible en bash.
Gilles 'SO- deja de ser malvado'
¿Desea ver los archivos enumerados por fecha o desea agregarlos de alguna manera al archivo en orden de fecha?
terdon
Hay muchos archivos diferentes en el directorio "Descargas", y quiero acceder al archivo descargado recientemente (tal vez descomprimirlo, moverlo a algún lugar, etc.).
Vi.

Respuestas:

2

No creo que bashsea ​​capaz de hacer eso, así que podrías probarlo zsh. Sin embargo, no soy un usuario de zsh, pero creo que esta configuración debería funcionar:

autoload -U compinit
compinit
zstyle ':completion:*' file-sort modification reverse

( reverseaquí para ver los archivos más nuevos al final de la lista, porque la parte superior podría no estar visible en la pantalla).

David Ongaro
fuente
0

Ocasionalmente, necesito encontrar el archivo descargado más recientemente en mi directorio de Descargas, pero es posible que no sepa el nombre exacto del archivo. Así es como lo hago.

ls -rt ~/Downloads

ls -tenumera los archivos por hora, no por nombre, y el más reciente se muestra primero. Como mi directorio de Descargas contiene tantos archivos, no quiero desplazarme al principio de la lista para ver los más recientes. ls -rtinvierte el orden de la lista, mostrando el archivo más reciente al final de la lista.

Desde allí, puede hacer lo que necesita con bastante facilidad. Por ejemplo:

unzip $(ls -rt ~/Downloads | tail -n1)

o

mv $(ls -rt ~/Downloads | tail -n1) *some_other_location*

Su pregunta original podría hacerse así:

7z l $(ls -rt ~/Downloads | tail -n1)

Me doy cuenta de que esto no se adhiere al método de finalización de la pestaña, pero puede ser adecuado para sus necesidades.

Timothy Martin
fuente
No guarda escribiendo. En realidad, ya tengo un guión rlcon ls -lhtc "$@" | head -n $Nhacer esto.
Vi.
La pregunta es cómo integrar este u otro script en <kbd> Tab </kbd> haciendo pensar sin problemas.
Vi.
Su fragmento también tiende a romperse en algunos nombres de archivo difíciles, como es típico en los archivos descargados.
Vi.
0

Haré los siguientes pasos para ello

  1. First I will find the files and their timestamps
  2. Sort them reversely
  3. Take top N
  4. Get the filenames
  5. Zip it or do whatever u like

Y el guión se ve así (puede ser complejo)

find ~/Downloads/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -N | cut -d' ' -f3 | xargs 7z l
Pappu
fuente
Ya tengo un script similar, llamado rl(lista reciente). Pero necesito llamarlo explícitamente, luego copiar y pegar. Quiero que esté más integrado con la finalización de pestañas.
Vi.