A menudo al descargar contenido de Internet vemos que traen archivos “basura” como los típicos archivos de Windows, desktop.ini para la configuración de una carpeta o thumbs.db donde se almacenan las imágenes en miniatura, etc…

Para evitar que se nos acumulen este tipo de archivos al guardarlos en nuestro equipo hemos desarrollado un script para Linux. También puede sernos útil para servidores Linux donde cada cierto tiempo (mediante un cron) se realice un borrado automático de estos archivos.

#!/bin/bash

app_name="Clear HDD Garbage"
app_version="1.0.1"
app_author="Security Null"
app_last_update="2014-02-09"
app_usage="Usage: ./clear_hdd_garbage.sh [base folder]"

# Print app info
echo $app_name $app_version
echo

# Set enviroment vars
IFS=$'\n'

# Mac Files
files[0]=".DS_Store"
files[1]="._.DS_Store"

# Win files
files[2]="desktop.ini"
files[3]="Thumbs.db"
files[4]="thumbs.db"
files[5]="Folder.jpg"
files[6]="folder.jpg"
files[7]="AlbumArtSmall.jpg"
files[8]="albumart*.jpg"

# Others
files[9]="._*"
files[10]=".@__thumb"

# Check command line params
if [ $# == 1 ]; then
	folder_path=$1
else
	folder_path="`pwd`/"
fi

# Check base dir
if [ -d "${folder_path}" ]; then

	# Clean HDD
	clean_files_count=0
	for pattern in ${files[@]}; do
		for file in $(find "${folder_path}/" -type f -name "$pattern")
		do
			echo $file
			rm $file
			((clean_files_count++))
		done
	done
	
	echo "CLEAN COMPLETE - Removed $clean_files_count files."

else
	echo "$app_name -> ERROR: Invalid dir '$1'."
	exit 1
fi

Ejecución

El script no tiene ningún parámetro obligatorio, sino se indica nada buscará archivos desde la ruta actual, aunque también se le puede indicar la ruta de una carpeta específica.

chmod 777 clear_hdd_garbage.sh # (Concedemos privilegios de ejecución)
./clear_hdd_garbage.sh "ruta_de_la_carpeta" # (Opcional)

Soporte

Para ayuda, reportar bugs, aportar ideas o mejoras contactar a: projects@securitynull.net