Rechercher : dans
Par :

Suppression fichiers avec caractères spéciaux

Dernière réponse le 30 mar 2009 à 11:07:47 noob, le 27 mar 2009 à 16:22:37 
 Signaler ce message aux modérateurs

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 !

Meilleures réponses pour « Suppression fichiers avec caractères spéciaux » dans :
[CCM] Utiliser des caractères spéciaux Voir Vous pouvez utiliser des caractères spéciaux dans vos messages sur les forums de CCM. Vous pouvez: Soit utiliser la table de caractères Windows (charmap.exe) et copier-coller les caractères dans le message. Soit utiliser les entités...
Oracle - Echappement de caractères spéciaux VoirPour certaines requêtes SQL, nous avons besoin de rechercher des chaînes de caractères contenant des caractères spéciaux tels que '%' Dans l'exemple suivant, qui est faux, le besoin est de trouver les enregistrements contenant au milieu le...
Supprimer un fichier contenant des caractères spéciaux VoirSi le fichier que vous souhaitez supprimer commence par un caractère "moins" (-), la commande rm risque de prendre la suite comme une option de la ligne de commande. Pour y remédier, une première solution consiste à faire précéder le nom du...
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...

1

jipicy, le 27 mar 2009 à 17:51:54

Salut,

Essaye comme suit :

find /users -type d -name .recycle -exec find {} -mtime +14 -depth -print0 \; | xargs -0 -I {} rm -f {} \;
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

 noob, le 30 mar 2009 à 11:07:47

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...

Répondre à noob
Collection CommentÇaMarche.net