schwuler Posté(e) le 12 avril 2014 Partager Posté(e) le 12 avril 2014 (modifié) Bonjour, Préambule (peut etre sauter, mais je le laisse, car cela pourra servir a quelqu'un d'autre) Depuis mon PC, je ne peux pas supprimer un repertoire qui se trouve sur mon nas (via partage samba), il me dit qu'un fichier est ouvert par un autre utilisateur. Apres une rapide recherche, j'ai trouvé que le probleme venait d'un repertoire caché nommé @eaDir. En supprimant depuis le NAS ce repertoire, je résoud mon probleme de suppression de repertoire depuis Windows. Cool, sauf qu'il y a un @ eaDir dans chaque repertoire de mon NAS... Problématique : Je cherche donc a supprimer tous @eaDir qui ne sont pas en rapport avec le serveur multimedia. Voici une commande trouvée sur le net : dans un premier temps on affiche : find . -name @eaDir -type d -print |while read FILENAME; do echo « ${FILENAME} »; done ./Documents/conf netgear/@eaDir ./Interventions/Blancco 2010/blancco client 1/@eaDir ./Interventions/Blancco 2010/@eaDir ./Interventions/584103 X3650 RAID 5 corrompu/@eaDir l'affichage fonctionne bien ! je remplace le echo par un rm -rf pour supprimer les @eaDir... La commande rends la main, mais n'a rien supprimé... Apres plusieurs test je me rends compte que le problème vient des espace dans mes nom de repertoires. meme en tapant directement un rm -rf "./Documents/conf netgear/@eaDir", cela ne fonctionne pas. j'ai essayé, " ' et ` mais meme probleme. Questions : Comment supprimer un repertoire avec des espaces sous linux ? En sachant que je ne souhaite pas les renommer. D'avance merci Seb Modifié le 12 avril 2014 par schwuler 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 12 avril 2014 Partager Posté(e) le 12 avril 2014 un devant les espace resoud le problème 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 12 avril 2014 Partager Posté(e) le 12 avril 2014 (modifié) un devant les espace resoud le problème Mais ça ne marchera pas pour le find car les espaces sont dans les chemins de fichiers trouvés par le find lui même. Dans ce cas, la bonne approche est: find . -name @eaDir -type d -print0 | xargs -0 rm -rf (les "0" sont des zeros, pas la lettre "O") A tester une fois "a blanc" (avec un "rm" on ne sait jamais) avec un echo: find . -name @eaDir -type d -print0 | xargs -0 echo rm -rf Modifié le 12 avril 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 12 avril 2014 Auteur Partager Posté(e) le 12 avril 2014 Merci pour vos retour, J'avais aussi trouvé cette ligne de commande en cherchant sur google. C'est le meme problème. le echo m'affiche tout, mais le rm ne fait rien.Seul le @eaDir du repertoire en cours ou des sous repertoire ne comportant pas d'espace sont supprimés (comme pour ma premiere commande). Si tu as une autre idée ? ++ seb 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 12 avril 2014 Auteur Partager Posté(e) le 12 avril 2014 (modifié) j'ia simplifié mon problème a l'extreme, je viens de créer un repertoire nommé test<espace>repertoire (on remarquera qu'il n'y a pas de soucis pour le créer) : DS213> mkdir "test repertoire" DS213> ls -al drwxr-xr-x 2 root root 4096 Apr 12 22:00 test repertoire Ensuite je tente de le supprimer, mais impossible, meme avec le "" (j'ai mis l'option -i a la place du -f, pour avoir l'erreur d'execution) : DS213> rm -ri "test repertoire" rm: can't remove 'test': No such file or directory rm: can't remove 'repertoire': No such file or directory DS213> rm -ri "test repertoire" rm: can't remove 'test': No such file or directory rm: can't remove 'repertoire': No such file or directory Si quelqu'un a deja rencontré ce problème.. ++ seb Modifié le 12 avril 2014 par schwuler 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 12 avril 2014 Auteur Partager Posté(e) le 12 avril 2014 Etant donné que le CD fonctionne avec les espaces. pour palier le problème, il faudrait passer par un script, dans le style #!/bin/bash déclaration d'un variable contenant le repertoire courant ( $rep_courant ) find . -name @eaDir -type d -print --> on envoie le résultat dans un fichier tant qu'il y a une ligne a traité : { variable = resultat de la premiere ligne variable = variable - les 6 derniers caractères (on enleve @eaDir) cd variable rm -rf @eaDir cd $rep_courant } Est ce que le fait de se déplacer est faisable dans un script ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 12 avril 2014 Partager Posté(e) le 12 avril 2014 DS213> rm -ri "test repertoire" rm: can't remove 'test': No such file or directory rm: can't remove 'repertoire': No such file or directory DS213> rm -ri "test repertoire" rm: can't remove 'test': No such file or directory rm: can't remove 'repertoire': No such file or directory Si quelqu'un a deja rencontré ce problème.. Ca défie toute logique! Je n'ai *jamais* rencontré un tel comportement en shell (et je suppose que tu utilise bien le shell standard, "/bin/ash" je suppose ?) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 13 avril 2014 Auteur Partager Posté(e) le 13 avril 2014 (modifié) re, oui j'utilise le shell par défaut, /bin/ash. les commandes CD MKDIR RMDIR fonctionnent bien avec les espace, sous reserve de mettre des double cote. le LS et le RM, impossible de faire fonctionner. entre temps, je viens de me rappeler que j'ai deja rencontré un pb similaire sous AIX 6.1 en ksh... je n'avais cependant pas le temps de "reflechir", j'avais contourné le probleme en renommant le reperoire via Filezilla... ici je ne peux pas, il y'en a beaucoup trop. Sur ton nas cela fonctionne t il ? merci ! seb PS : je suis en DSM 4.2 3216 Modifié le 13 avril 2014 par schwuler 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 13 avril 2014 Partager Posté(e) le 13 avril 2014 oui j'utilise le shell par défaut, /bin/ash. les commandes CD MKDIR RMDIR fonctionnent bien avec les espace, sous reserve de mettre des double cote. le LS et le RM, impossible de faire fonctionner. Pas facile de comprendre ce qui se passe: le shell effectue le parsing des arguments indépendamment de la commande. A tout hasard, vérifie ce que donnent chez toi les commandes type ls et type rm entre temps, je viens de me rappeler que j'ai deja rencontré un pb similaire sous AIX 6.1 en ksh... Ben moi, je pratique cet environnement (AIX et ksh) tout les jours depuis des années et je n'ai jamais rencontré cette anomalie. je n'avais cependant pas le temps de "reflechir", j'avais contourné le probleme en renommant le reperoire via Filezilla... ici je ne peux pas, il y'en a beaucoup trop. Sur ton nas cela fonctionne t il ? Bien entendu (tu penses que j'ai vérifié avant de répondre), comme sur tous les autres shells unix que je pratique d'ailleurs. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 13 avril 2014 Auteur Partager Posté(e) le 13 avril 2014 re, DS213> type ls ls is a tracked alias for /bin/ls DS213> type rm rm is a tracked alias for /bin/rm DS213> type mkdir mkdir is a tracked alias for /bin/mkdir DS213> et merci pour tes tests 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 13 avril 2014 Partager Posté(e) le 13 avril 2014 re, DS213> type ls ls is a tracked alias for /bin/ls DS213> type rm rm is a tracked alias for /bin/rm DS213> type mkdir mkdir is a tracked alias for /bin/mkdir DS213> et merci pour tes tests Tout est normal et j'en perd mon latin (j'ai pourtant un peu de bouteille dans le domaine) Ah moins que l'explication soit si grosse et devant mes yeux que je ne la voir même pas. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bud77 Posté(e) le 13 avril 2014 Partager Posté(e) le 13 avril 2014 (modifié) Chez moi, en DSM 4.2, j'ai pas ces problèmes : bud-server> ls -ltr bud-server> mkdir "test syno" bud-server> ls -ltr drwxr-xr-x 2 root root 4096 Apr 13 11:57 test syno bud-server> rm -rf "test syno" bud-server> ls -ltr bud-server> mkdir "test syno" bud-server> rm -ri "test syno" bud-server> ls -ltr bud-server> mkdir "test syno" bud-server> rm -ri test syno/ bud-server> ls -ltr bud-server> Modifié le 13 avril 2014 par bud77 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 13 avril 2014 Partager Posté(e) le 13 avril 2014 bud-server> Sympa le nom. Pour un euro (en bitcoins via le port USB) il éjecte une mousse bien fraîche je suppose? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bud77 Posté(e) le 13 avril 2014 Partager Posté(e) le 13 avril 2014 Vérifier votre version de busybox (sur lequel les commandes pointent) Chez moi : bud-server> busybox BusyBox v1.16.1 (2013-04-16 20:14:37 CST) multi-call binary. Sympa le nom. Pour un euro (en bitcoins via le port USB) il éjecte une mousse bien fraîche je suppose? Le jour où ils inventent la machine à pression "connectée" je fonce !!!! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 13 avril 2014 Auteur Partager Posté(e) le 13 avril 2014 re, j'ai la meme version que toi : DS213> busybox BusyBox v1.16.1 (2013-04-16 20:15:04 CST) multi-call binary. Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko and others. Licensed under GPLv2. See source distribution for full notice. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bud77 Posté(e) le 13 avril 2014 Partager Posté(e) le 13 avril 2014 Très très très bizarre alors Vous avez paramétré quoi dans putty, partie terminal > keyboard ? Pour moi : control-? standard ESC[n~ 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 14 avril 2014 Auteur Partager Posté(e) le 14 avril 2014 re, j'ai les meme parametres que vous. ceux par défaut, je n'ai rien touché. Seb 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwuler Posté(e) le 14 avril 2014 Auteur Partager Posté(e) le 14 avril 2014 j'abandonne pour le rm... je vais tenté de passer par un script qui fait un find, qui se deplace et supprime le reperoire @eaDir. ce ne doit pas etre bien compliqué.. enfin j'espère ! ++ Seb 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.