GNU/Linux >> Linux Esercitazione >  >> Linux

trova l'ordine di ordinamento predefinito del comando

Soluzione 1:

find attraverserà l'albero delle directory nell'ordine in cui gli elementi sono memorizzati all'interno delle voci della directory. Questo sarà (principalmente) coerente da un'esecuzione all'altra, sulla stessa macchina e sarà essenzialmente "l'ordine di creazione di file/directory" se non ci sono state eliminazioni.

Tuttavia, alcuni file system riordineranno le voci della directory come parte delle operazioni di compattazione o quando la dimensione della voce deve essere espansa, quindi c'è sempre una piccola possibilità che l'ordine "grezzo" cambi nel tempo. Se desideri un ordine coerente, alimenta l'output attraverso una fase di smistamento aggiuntiva.

Soluzione 2:

Non dovresti fare affidamento su un particolare ordine di output da find e invece dovrebbe usare sort e altri mezzi per controllare specificamente l'ordine.

Soluzione 3:

Lavoro in UNIX/Linux rispettivamente dal 1984/1991 e il primo comando che mi è stato insegnato è stato find. Linux/GNU ha messo praticamente tutto ciò di cui hai bisogno nell'attuale comando find, quindi giocaci un po'.

Ecco alcuni suggerimenti utili per ordinare l'output di find. L'opzione -printf offre molte opzioni per abilitare un ordinamento più complesso e una presentazione delle informazioni sui file. È il migliore per problemi come questo. Gioca con esso per vedere cosa funzionerà per te. Usando -printf puoi personalizzare e delimitare i risultati nel modo desiderato. Questo aiuta un po 'quando è necessario post-elaborare i risultati. Spero che questo aiuti qualcuno.

  1. Se usi -ls e vuoi ordinare per nome file, l'undicesimo campo è il nome del file, quindi puoi fare quanto segue. Anche l'opzione sort -k può richiedere più campi su cui ordinare.

    trova /percorso -ls | ordina -k11

  2. Se si desidera un controllo più preciso, ad esempio ordinare per data/ora in ordine crescente o decrescente, utilizzare l'opzione -printf "". Consulta il manuale per maggiori dettagli, ma quello che segue è un esempio che verrà stampato con frazioni di secondo, quindi è molto preciso.

ESEMPIO DI DATA/ORA:2016-09-17+12:09:57.9013929800

find /path -printf "%T+ %p\n" | sort -n # Ascending

find /path -printf "%T+ %p\n" | sort -nr # Descending

Un altro modo per farlo senza caratteri nella stringa data/ora è.

ESEMPIO DI DATA/ORA:20160917120013.8101685040

find /path -printf "%AY%Am%Ad%AH%AM%AS %p\n" | sort -n

Linux
  1. Come integrare il comando Mv dopo il comando Trova?

  2. ordina Esempi di comandi in Linux

  3. ordina:comando non trovato

  4. Ordinamento di un file delimitato da tabulazioni

  5. Come escludere una directory in find . comando

Comando di ordinamento Linux con esempi

fd – Un'alternativa semplice e veloce per trovare il comando

Trova comando in Linux (Trova file e directory)

Trova comando in Linux/UNIX

Qual è l'ordine predefinito dell'ordinamento di Linux?

Comando di ricerca di Linux:mostra l'avanzamento