Bonjour,
j'ai un dossier "Hankow 1903-1910" que je souhaite effacer ainsi que son contenu mais impossible.
Je fais :
root@xxxxx:/var/www/my_webapp__2/www/photos/Wuhan# rm -rf Hankow 1903-1910
Je n'ai pas de message d'erreur, mais le dossier et son contenu sont toujours là…
Merci des conseils.
# Gérer les espaces
Posté par JJD . Évalué à 5.
Lorsque tu lances ta commandes, comme le nom de ton répertoire contient des espaces, rm essaie d'effacer Hankow ET 1903-1910. Il n'existe pas de fichiers ou de répertoires avec ces noms donc rien n'est effacé. Comme tu as spécifié l'option -f, il n'y a pas non plus de message d'erreur (voir la documentation de rm).
Pour que cela fonctionne, il suffit que tu mettes des quottes (simples ou double) pour encadrer le nom du répertoire de façon à ce que les deux mots soient considérés comme un seul paramètre.
# hmm
Posté par Benoît Sibaud (site web personnel) . Évalué à 6. Dernière modification le 19 décembre 2018 à 12:12.
Le souci est l'espace. Donc soit mettre des ', soit des guillemets doubles ", soit échapper l'espace avec un .
De manière générale, en shell, de nombreux caractères sont 'problématiques' (à traiter différemment), comme espace, saut de ligne, tiret, *, #, \, $, |, `, ~, etc.
[^] # Re: hmm
Posté par NeoX . Évalué à 3.
les accents sont aussi, parfois contraignants
[^] # Re: hmm
Posté par lolop (site web personnel) . Évalué à 10.
L'utilisation de la complétion permet de laisser l'outil insérer les caractères d'échappement là où il faut… gros gain de temps.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
# non
Posté par arnauld . Évalué à 1. Dernière modification le 19 décembre 2018 à 14:17.
Cela ne marche pas.
Si j'essaye avec rm -rf 'Hankow 1903-1910'
Le dossier et son contenu sont toujours là.
J'ai essayé également avec Filezilla et là non plus, pas de succès. Le dossier est bien là, mais impossible de l'effacer avec Filezilla non plus. J'ai une erreur :
capture d'écran :
Je précise que ce dossier est sur un Pi avec un serveur Yunohost https://yunohost.org/#/index_fr installé.
arnauld
[^] # Re: non
Posté par Marco . Évalué à 2. Dernière modification le 19 décembre 2018 à 14:41.
Tu le fais à distance (ssh) ? Si c'est le cas es-tu bien connecté au pi : erreur bête mais qui peut arriver (ça m'est déjà arrivé) ?
Que donne ls sur ta console ?
Ce serait quand même bizarre car il semble que tu es dans le bon sous dossier mais on sait jamais
[^] # Re: non
Posté par chimrod (site web personnel) . Évalué à 3.
Je me souviens une fois avoir passé une heure sur un problème similaire avec Filezilla. Jusqu'à ce qu'un collègue passe derrière moi et me dise "essaie de rafraichir l'affichage".
C'est le métier qui rentre…
[^] # Re: non
Posté par arnauld . Évalué à 1. Dernière modification le 19 décembre 2018 à 18:18.
Oui, en ssh, je suis bien connecté au pi.
ls donne :
Cela liste toutes les photos du dossier "Wuhan", mais les dossiers dans "Wuhan" ne sont pas listés. Il devraient y en avoir six (voir capture Filezilla précédente). Les dossiers apparaissent bien dans Filezilla.
Si je navigue dans les autres dossiers sous "Wuhan", c'est bon, je peux renommer, effacer…sauf ce dossier "Hankow…" sur lequel je ne peux rien faire.
arnauld
[^] # Re: non
Posté par arnauld . Évalué à 1.
Edit :
Ah si, ils sont bien listés.
arnauld
[^] # Re: non
Posté par gUI (Mastodon) . Évalué à 5.
Peux-tu faire
rm -rf "Hankow<TAB>
Il s'agit d'appuyer sur la touche pour laisser le shell compléter tout seul. Avec un guillemet en tête (devrait aussi marcher avec une apostrophe), le shell devrait savoir gérer les espaces, et mettre lui-même le guillement fermant.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: non
Posté par Anonyme . Évalué à 5.
Je pense que c'est la meilleure approche vu les problèmes de nommage que arnaud a déjà eu par le passé avec des noms de dossiers contenant un retour chariot.
[^] # Re: non
Posté par arnaudus . Évalué à 3. Dernière modification le 19 décembre 2018 à 18:01.
Faut dire que niveau WTF, on fait difficilement mieux… '*', ça peut être pas mal non plus. Ça vient des premiers Unix, cette idée d'ouvrir toute la table ASCII pour les noms de fichiers? On aurait tout aussi bien fait de coller aux règles pour les noms de variables en C, par exemple, ça aurait évité quelques millions de bugs ou mauvaises manips.
[^] # Re: non
Posté par Cyril Brulebois (site web personnel) . Évalué à 2. Dernière modification le 19 décembre 2018 à 23:44.
C'est bien pire que toute la table ASCII… Modulo les éventuelles limitations spécifiques à un système de fichiers, c'est tout caractère sauf
/
qui peut se retrouver dans un nom de fichier (oui ça inclut bien sûr des choses rigolotes comme☃
,❤
ou∕
).Debian Consultant @ DEBAMAX
[^] # Re: non
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Sauf '/' et '\0' pour les systèmes de fichiers Unix a priori. Et des restrictions sur '.' et '..' comme noms.
[^] # Re: non
Posté par arnauld . Évalué à 6.
:-)
En effet, cela semble être la cause de mon problème.
Après avoir fait un ls dans le dossier "Wuhan" j'ai :
Je vois donc qu'avant le nom du dossier "Hankow…" il y a un espace qui doit être un caractère bizarre.
Malheureusement je ne sais pas quel est ce caractère.
J'ai donc fait un copier/coller (du nom du dossier avec ce caractère/ou espace non visible au début du nom avant "Hankow…) du terminal pour essayer :
"rm -r " Hankow 1903-1910"
Et bingo j'ai pu effacer le dossier !
Merci xev de m'avoir rappelé mes problèmes de nommage. Je n'aurais pas du me fier à Filezilla pour voir le nom de ce dossier mais au terminal qui lui m'affichait le nom correct avec le caractère/ou espace avant "Hankow…
arnauld
[^] # Re: non
Posté par Anonyme . Évalué à 2.
Ça m'avait pas mal marqué quand tu l'avais montré la première fois. Comme l'on remarqué les autres c'est complètement aberrant qu'un quelconque programme autorise ce genre de caractère.
Ici je pensais plutôt à un caractère UTF-8 cyrillique ou ce genre de glyphes identiques aux caractères hérités des charsets Latin.
[^] # Espace, mc, sshfs
Posté par Arthur Accroc . Évalué à 2.
Pas forcément, probablement juste l’espace ASCII classique, mais qui fait partie du nom (il ne fallait pas l’y mettre !).
Sinon, connais-tu Midnight Commander (mc) ? Indication pour commencer à l’utiliser : les chiffres indiqués sur la ligne du bas correspondent aux touches de fonctions.
sshfs peut être intéressant aussi : une fois le répertoire monté sur ton ordinateur local, tu peux en modifier le contenu avec ton navigateur de fichiers graphique habituel.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: non
Posté par arnauld . Évalué à 1.
Si je fais rm -rf "Hankow il ne se passe rien…ça ne complète pas.
arnauld
# Renommer, puis effacer
Posté par Sylvain Blandel . Évalué à 1.
Si tu en as la possibilité, renomme ton dossier avec un nom qui ne contiendra aucun caractère problématique (espace, tiret, point, *, #, \, $, |, `, ~, …). Ensuite, efface le dossier.
[^] # Re: Renommer, puis effacer
Posté par arnauld . Évalué à 1.
C'est ce que je vais faire pour créer le nouveau dossier, merci.
arnauld
# Rapport de bug
Posté par ted (site web personnel) . Évalué à 1.
Le fait que tu n'as pas pu effacer le dossier depuis Filezilla est un bug que tu peux reproduire. Peut être peux-tu ouvrir un rapport de bug pour ça?
Si tu n'arrives plus à mettre la main sur le caractère incriminé, tu devrais encore le trouver dans ton .bash_history
Un LUG en Lorraine : https://enunclic-cappel.fr
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.