GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare tutti i file sparsi in Linux

I file sparsi sono file a cui è preallocata una grande quantità di spazio, senza occupare l'intera quantità dal filesystem. Sono utili per ridurre la quantità di tempo e spazio su disco coinvolti nella creazione di filesystem di loop o immagini di dischi di grandi dimensioni per guest virtualizzati, tra le altre cose. Con il termine “cartella sparsa” si intende quella contenente “buchi”; è facile riconoscerne uno su un sistema in esecuzione perché il suo utilizzo del disco è inferiore alle sue dimensioni. Possiamo vedere questo comportamento con /var/log/lastlog file.

# ls -lh /var/log/lastlog
-rw-r--r--. 1 root root 286K Dec  3 04:50 /var/log/lastlog
# du -sh /var/log/lastlog
12K     /var/log/lastlog

Trovare file sparsi

Ora il processo di cui sopra può identificare i file sparsi nel sistema, ma diventa complicato trovare tutti i file sparsi in un filesystem o in una directory, specialmente quando sono molti. Non preoccuparti, c'è un'opzione nel comando trova che ci aiuta a trovare tutti i file sparsi in una volta sola. Vediamo un esempio qui sotto.

1. Usa il comando trova con “%S ” per trovare la rarità di ogni file.

# find /var/log -type f -printf "%S\t%p\n"
# find /var/log -type f -printf "%S\t%p\n"
1       /var/log/tallylog
1.00095 /var/log/audit/audit.log.1
0.0419982       /var/log/lastlog
....

2. Il valore visualizzato nella colonna più a sinistra è (BLOCK-SIZE*st_blocks / st_size ) che normalmente è inferiore a 1.0 in caso di file sparse.

3. Se vuoi trovare tutti i file sparsi sul sistema, possiamo filtrare tutti i file con i valori della colonna più a sinistra inferiori a 1.

# find / -type f -printf "%S\t%p\n" | gawk '$1 < 1.0 {print}'
0.0139994       /var/log/lastlog
0.959592        /usr/lib/locale/locale-archive
...


Linux
  1. Come trovare un file in Linux in tutte le directory in modo ricorsivo

  2. Come trovare file duplicati in Linux

  3. Come trovare tutti i file relativi a un software?

  4. Come trovare tutti i file di dimensioni superiori a 1 GB in Linux?

  5. Come trovare tutti i file/cartelle con l'autorizzazione 777 in Linux?

Come trovare file in Linux con il comando Trova

Come contare i file nella directory in Linux

Come trovare i file usando la riga di comando nel terminale Linux

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Come cercare file dalla riga di comando di Linux

Come trovare file con il comando fd in Linux