Linux: trovare i file più grandi o più piccoli di una certa dimensione

Le immagini costituiscono circa il 21% del totale dei dati scaricati per visualizzare una pagina.

Nell’era in cui la velocità di caricamento di un sito è fondamentale il ruolo dell’ottimizzazione delle immagini è sempre più centrale per ottimizzare una pagina web in ottica SEO.

Proprio per questo motivo nei giorni scorsi mi sono trovato a dover cercare tutte le immagini di questo sito che avessero una dimensione eccessiva in modo da poterle comprimere accelerando il caricamento delle pagine.

Se hai mai utilizzato WordPress per creare un blog saprai già che ogni immagine caricata viene salvata all’interno di una cartella con l’anno che al suo interno ne contiene un’altra con il mese (es. /2020/11/myImage.jpg).

Fino a che il numero di immagini è basso si può anche pensare di cercare manualmente i file navigando tutte le cartelle ma dopo anni e anni di file caricati l’idea di passare tutte le cartelle una per una non mi sembrava percorribile. Per questo motivo mi sono messo a cercare se esistesse un modo più furbo di affrontare il problema. Fortunatamente Linux ci viene incontro con un comando da terminale in grado di trovare istantaneamente tutti i file con dimensione maggiore o minore di un peso dato.

Ma prima di mostrarti come fare per trovare tutti i file con una certa dimensione mi presento: sono Lorenzo Millucci e sono un ingegnere del software che ama lavorare con Symfony e a cui piace condividere in questo blog le cose che impara. Iscriviti anche al mio canale Telegram in cui, ogni martedì, commento una notizia curiosa legata al mondo tecnologico!

Trovare tutti i file con dimensione maggiore o minore di un certo valore

Per farlo ti basterà utilizzare un paio di opzioni aggiuntive del comando find.

Ad esempio per trovare tutti i file maggiori di 1Mb all’interno di una cartella (e di tutte le sue sottocartelle) basterà dare il comando:

find . -type f -size +1M

Per specificare la dimensione dei file da cercare puoi passare all’opzione -size le seguenti unità di misura:

  • c per indicare la dimensione in bytes
  • k per indicare la dimensione in Kilobytes
  • M per indicare la dimensione in Megabytes
  • G per indicare la dimensione in Gigabytes

Per esempio, eseguendo il comando sulla cartella con le immagini caricate in questo blog ottengo come risultato:

./2019/06/print_queue.gif
./2020/03/vue3_cover_lm.jpg
./2020/03/IMG_20200402_121709__01.jpg
./2020/05/webpack_performance.jpg
Tutti i file con dimensione maggiore di 1 Mb

NOTA: di default il comando cerca i file includendo anche tutte le sottocartelle. Se vuoi limitare la ricerca alla sola cartella attuale puoi aggiungere al comando l’opzione -maxdepth 1

Se invece avessi voluto trovare tutti i file con dimensione minore di 500Kb avrei dovuto modificare il comando in:

find . -type f -size -500k

Infine se avessi voluto cercare tutti i file compresi tra 500Kb e 1Mb il comando sarebbe stato:

find . -type f -size +500k -size -2M
Tutti i file con dimensione compresa tra 500Kb e 2Mb

Se questo post ti è stato utile puoi farmelo sapere lasciando un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *