Autore dello script: Fabrizio | Sito Web: http://bash-script.b2com.org
Lo script di oggi permette di creare un file HTML contenente l'elenco di tutti i file e cartelle presenti nella directory nella quale viene eseguito. Nell'archivio .tar.gz è presente anche una variante dello script che crea un file di testo semplice al posto del file HTML.
Per entrambi gli script è presente un'ulteriore variante che inserisce la data di creazione del file HTML o testo anche nel nome del file stesso.
Ecco il codice sorgente:
#!/bin/bash
cartella=$PWD
output_file="lista.html"
if [ -e ${output_file} ]
then
rm ${output_file}
fi
touch ${output_file}
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">" >> ${output_file}
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"it\" lang=\"it\">" >> ${output_file}
echo "<head>" >> ${output_file}
echo "<title>Sommario File e Directory</title>" >> ${output_file}
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"/>" >> ${output_file}
echo "<meta http-equiv=\"content-type\" content=\"application/xhtml+xml; charset=UTF-8\"/>" >> ${output_file}
echo "<style type=\"text/css\">" >> ${output_file}
echo "h1 {text-align: center; color: #C71585;}" >> ${output_file}
echo ".evidenzia {color: #6495ED;}" >> ${output_file}
echo ".centra {text-align: center}" >> ${output_file}
echo "</style>" >> ${output_file}
echo "</head>" >> ${output_file}
echo "<body>" >> ${output_file}
num_file=$( ls ${cartella} | wc -w )
odierna=$(date '+%F - %H:%M:%S')
echo "<h1>Elenco File e Directory</h1>" >> ${output_file}
echo "<hr />" >> ${output_file}
echo "<h2>Cartella: <span class=\"evidenzia\">${cartella}</span></h2>" >> ${output_file}
echo "<p>Data: <strong>${odierna}</strong></p>" >> ${output_file}
echo "<hr />" >> ${output_file}
echo "<h3>Dettagli</h3>" >> ${output_file}
echo "<p>Sono presenti <strong>${num_file}</strong> elementi in questa directory.</p>" >> ${output_file}
echo "<p><strong>Elenco Files</strong></p>" >> ${output_file}
echo "<ul>" >> ${output_file}
for elemento in $(ls ${cartella})
do
if [ -f ${elemento} ]
then
echo "<li>${elemento}</li>" >> ${output_file}
fi
done
echo "</ul>" >> ${output_file}
echo "<p><strong>Elenco Directory</strong></p>" >> ${output_file}
echo "<ul>" >> ${output_file}
for elemento in $(ls ${cartella})
do
if [ -d ${elemento} ]
then
echo "<li>${elemento}</li>" >> ${output_file}
fi
done
echo "</ul>" >> ${output_file}
echo "<hr />" >> ${output_file}
echo "<p class=\"centra\"><small>Pagina creata il: ${odierna}<br />" >> ${output_file}
echo "Autore dello script: Tux7000 - <a href=\"mailto:tux7000@gmail.com\">tux7000@gmail.com</a><br />" >> ${output_file}
echo "Per informazioni visita il <a href=\"http://bash-script.b2com.org\">Sito Web</a></small></p>" >> ${output_file}
echo "<hr />" >> ${output_file}
echo "</body>" >> ${output_file}
echo "</html>" >> ${output_file}
Per utilizzare lo script è sufficiente renderlo eseguibile.
Per maggiore comodità consiglio di installarlo nella directory /usr/local/bin, in questo modo l'esecuzione avviene semplicemente digitando in un terminale:
elenco.sh
in qualsiasi directory vi trovate.