Suppression fichiers avec caractères spéciaux

noob -  
 noob -
Bonjour,

Je dispose d'un serveur Samba dont les partages sont utilisés sous Windows.
Avec Samba, je mets à disposition des utilisateurs l'équivalent d'une poubelle (dossier .recycle)
Je cherche à automatiser la suppression des fichiers de cette poubelle qui ont plus de 2 semaines.
Evidemment, comme les fichiers et les répertoires sont générés par Windows, je me retrouve à devoir supprimer des fichiers et des répertoires avec des noms pénibles à gérer (espaces et caractères exotiques).
exemple: statistiques__mono activitã©_avec_effectif_de_1_ã _5_.sas

Voici le genre de commande que je souhaite utiliser (et qui ne fonctionne que pour les fichiers sans caractères spéciaux):
find /users -type d -name .recycle -exec find {} -mtime +14 -depth \; | xargs -I {} rm -f "{}" \;

Petite précision, je ne peux pas utiliser la suppression par inode vu que je tourne sous AIX 5.3 ou le rm ne le permet pas.

Merci pour votre aide !
A voir également:

1 réponse

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Essaye comme suit :
find /users -type d -name .recycle -exec find {} -mtime +14 -depth -print0 \; | xargs -0 -I {} rm -f {} \;
0
noob
 
Merci jipicy pour ton aide.
Hélas, l'option -0 n'est pas implémentée sous AIX.
J'ai fini par écrire un petit bash qui fonctionne en remplaçant les caractères spéciaux avant suppression.

#!/bin/bash
find /users -type d -name .recycle -exec find {} -mtime +14 -depth \; | while read f
do
new=`echo ${f//[-"$"\'\#\Ã\£\Â\©\!\ ]/_}`
mv "$f" "$new"
rm -f "$new"
done

Si ça peut aider quelqu'un...
0