Di recente si è verificato un problema per visualizzare l'output standard (stdout) di un comando Linux nell'ordine inverso.
Ad esempio; ls -lrt elencherà i file e le directory in base alla data di creazione/aggiornamento ma vorrebbe ottenere l'output nella direzione inversa.
Soluzione: La shell di Linux è ricca di funzionalità. Ha un comando integrato, ovvero tac
parte delle coreutils scritte da Jay Lepreau e David MacKenzie. Concatena e stampa i file in ordine inverso.
cioè, lo stdout del comando è dato come input standard a tac e copia lo standard input in standard output invertendo i record ogni riga separatamente.
Fase 1:elenca i file nell'ordine predefinito.
[root@ssl httpd]$ ls -rlt total 12 lrwxrwxrwx 1 root root 29 Sep 8 15:58 modules -> ../../usr/lib64/httpd/modules lrwxrwxrwx 1 root root 19 Sep 8 15:58 logs -> ../../var/log/httpd drwxr-xr-x 2 root root 4096 Sep 8 15:58 conf lrwxrwxrwx 1 root root 10 Sep 8 15:58 run -> /run/httpd drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.modules.d drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.d
Fase 2:elenca i file nell'ordine inverso rispetto all'ordine predefinito.
[root@ssl httpd]$ ls -lrt | tac drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.d drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.modules.d lrwxrwxrwx 1 root root 10 Sep 8 15:58 run -> /run/httpd drwxr-xr-x 2 root root 4096 Sep 8 15:58 conf lrwxrwxrwx 1 root root 19 Sep 8 15:58 logs -> ../../var/log/httpd lrwxrwxrwx 1 root root 29 Sep 8 15:58 modules -> ../../usr/lib64/httpd/modules
Questo comando integrato tac
può essere utilizzato su qualsiasi comando Linux o anche sui propri script.