[Risolto] Tipo di file

Ciao a tutti,
torno a chiedere il vostro aiuto dopo molti anni di assenza.

Ho una cartella con molti file all’interno, esattamente 35628.
Posso da terminale vedere qual è il tipo di file? (es. jpeg, html-document, mp3, …)

Grazie mille in anticipo.

il comando file è tuo amico

$ file (path e nome del file) ti dice che tipo di file è (non ti dirà txt o mp3 ma “UTF-8 Unicode text” o “Audio file with ID3 version 2.3.0”
oppure

$ file * ti elenca i file con il tipo di file
Certo che 35628 file sarà una cosa lunga :slight_smile:

alla brutta maniera ls > elenco_file.txt
Apri il file con gedit e copi incolli il contenuto in libreoffice. Poi recuperi l’estensione con il “testo in colonne” (è presente in excell non so se c’è in libreoffice) o con qualche sorta di stringa estrai.
poi raggruppi

Ciao ad entrambi,
grazie mille per le risposte.

Senza offese Lablinux, ma la risposta di andreamal è decisamente migliore.

Ora riesco perfettamente a sapere il tipo di file. Mi manca solo un passaggio.
Ditemi voi se devo aprire un’altra discussione o possiamo continuare qui.

Vorrei cancellare tutti i file HTLM, quindi cosa faccio:

  • per prima cosa li identifico e li salvo in un file
file * | grep -i HTML | awk '{ print $1 }' > /home/...../file_remove 

Questo comando mi salva in “file_remove” un listato di righe così fatte:

  • quindi poi apro il file con gedit e sostituisco i " : " della prima colonna con nulla " "
    così facendo ho un file con i nomi dei file, tipo:
  • dopodiché posso lanciare un banale script che mi cancella tutti i file HTML presenti nella cartella:
#!/bin/bash
Limite=$(wc -l /home/........../file_remove | awk '{ print $1 }')
for ((i=1; i <= Limite; i++))
do
 rm -rf $(sed -n "$i"p /home/.........../file_remove)
 echo "$i"
done

exit 0

Considerate che i file in questa directory sono dinamici, quindi si possono ricreare altri file HTML da cancellare e altri file di vario tipo da tenere.

Ora la domanda è:
come posso escludere il carattere finale della stringa e non passare più dal gedit?
sarebbe interessante mettere nello script fatto già questa funzionalità in automatico.

Grazie in anticipo.

Ciao ragazzi,
ho risolto modificato lo script in questo modo:

#!/bin/bash

file * | grep -i HTML | awk '{ print $1 }' > /home/............../file_remove 

Limite=$(wc -l /home/................/file_remove | awk '{ print $1 }')
for ((i=1; i <= Limite; i++))
do
 rm -rf $(sed -n "$i"p /home//................/file_remove | tr ':' ' ')
 echo "$i"
done

exit 0

Grazie mille per l’aiuto.

A presto.

e invece mi sono offesso … oviamente scherzo.
Avevo capito che ti interessasse solo sapere le estensioni e non farci altro