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.
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
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:
file * | grep -i HTML | awk '{ print $1 }' > /home/...../file_remove
Questo comando mi salva in “file_remove” un listato di righe così fatte:
#!/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