-- Leo's gemini proxy

-- Connecting to gmi.osiux.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=es_AR

`date-order-files` vs `year-order-dirs`


AUTHOR: Osiris Alejandro Gomez

EMAIL: osiux@osiux.com

DATE: 2023-05-30 20:04


[IMG]

[1]


*amo el orden pero soy un caos!*


Trabajo en una *terminal*, *tty*, *consola* o como prefieras nombrar al *shell*, en mi caso uso `BASH` y cuando estoy en entorno `X` uso `awesome` ^1[2] asi que no cuento con un escritorio con íconos a organizar, pero en la oscuridad de la terminal puede que los archivos estén un tanto desordenados!


`YYYY-MM-DD`


Gracias al formato *ISO 8601* ^2[3], por lo general la mayoría de los archivos los guardo en con prefijo `YYYY-MM-DD` entonces, con solo listarlos ya estaría ordenados! y sería muy fácil filtrar usando `grep`, por ejemplo, para ver los archivos de hoy se podría ejecutar:


ls | grep $(date +%F)

...y si quisieramos los archivos de ayer?:


ls | grep $(date +%F -d yesterday)

*too many files...*


Pero si hay cientos o miles de archivos en un directorio, termina resultando un poco molesto de todas maneras, por ejemplo en el directorio donde guardo los *screenshots* un posible estado sería el siguiente:


# ls

2023-05-10-103126.png
2023-05-10-103557.png
2023-05-10-104023.png
2023-05-10-104027.png
2023-05-10-111012.png
2023-05-10-112947.png
2023-05-10-113858.png
2023-05-10-113934.png
2023-05-10-115924.png
2023-05-10-120143.png
2023-05-10-120537.png
2023-05-17-175542.png
2023-05-17-180737.png
2023-05-18-115418.png
2023-05-18-115840.png
2023-05-18-131556.png
2023-05-20-104557.png
2023-05-23-234549.png
2023-05-24-144143.png
2023-05-25-001043.png

`date-order-files`


Basta ejecutar `date-order-files` ^3[4] para que se creen directorios con formato `YYYY-MM-DD` y todos los archivos coincidentes se auto-ordenen:


# date-order-files

# ls -1

2021/
2022/
2023/
2023-04-30/
2023-05-03/
2023-05-04/
2023-05-05/
2023-05-08/
2023-05-09/
2023-05-10/
2023-05-11/
2023-05-12/
2023-05-15/
2023-05-16/
2023-05-17/
2023-05-18/
2023-05-19/
2023-05-20/
2023-05-22/
2023-05-23/
2023-05-24/
2023-05-25/
2023-05-29/

`year-order-dirs`


Y si queremos ordenar directorios por año, basta ejecutar `year-order-dirs` ^4[5] y listo, se auto-ordenan los directorios:


# year-order-dirs

# ls

2021/
2022/
2023/
2023-05-30-195020.png

Ambos comandos por defecto excluyen los archivos del día, para tener lo último en la raíz del directorio de trabajo siempre a mano.


Los *scripts* estan en el *repo* `bin-bash-utils` ^5[6].


ChangeLog


`2023-05-30 23:33`[7] agregar `date-order-files` vs `year-order-dirs`


1: file:img/ranger-date-order-files-vs-year-order-dirs.png

2: %5Bfile:awesome-es-increible.gmi%5D(awesome-es-increible.gmi)

3: https://en.wikipedia.gmi/wiki/ISO_8601

4: https://gitlab.com/osiux/bin-bash-utils/-/raw/develop/date-order-files

5: https://gitlab.com/osiux/bin-bash-utils/-/raw/develop/year-order-dirs

6: https://gitlab.com/osiux/bin-bash-utils.git

7: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/496098dc9b2838096770d4072629e97f7c22839e

-- Response ended

-- Page fetched on Thu May 2 06:11:03 2024