Forum Linux.debian/ubuntu Impossible d'effacer un dossier

Posté par  . Licence CC By‑SA.
Étiquettes :
0
19
déc.
2018

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

    rm -rf 'Hankow 1903-1910'
    rm -rf "Hankow 1903-1910"
    rm -rf Hankow\ 1903-1910
    

    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  . Évalué à 3.

      de nombreux caractères sont 'problématiques' (à traiter différemment), comme espace, saut de ligne, tiret, *, #, \, $, |, `, ~, etc.

      les accents sont aussi, parfois contraignants

      • [^] # Re: hmm

        Posté par  (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.

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

  • # non

    Posté par  . É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 :

    Status: Deleting "/var/www/my_webapp_2/www/photos/Wuhan/Hankow 1903-1910"
    Command: rm "/var/www/my_webapp
    2/www/photos/Wuhan/Hankow 1903-1910"
    Error: rm /var/www/my_webapp
    2/www/photos/Wuhan/Hankow 1903-1910: no such file or directory
    Status: Retrieving directory listing of "/var/www/my_webapp
    2/www/photos/Wuhan"…
    Status: Listing directory /var/www/my_webapp
    2/www/photos/Wuhan
    Status: Directory listing of "/var/www/my_webapp
    _2/www/photos/Wuhan" successful

    capture d'écran :

    http://i.imgur.com/ZZ4ZGG7.png

    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  . É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  (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  . Évalué à 1. Dernière modification le 19 décembre 2018 à 18:18.

        Oui, en ssh, je suis bien connecté au pi.

        ls donne :

        root@xxxxx:/var/www/my_webapp__2/www/photos/Wuhan# ls
        1900s CHINA QING ARTILLERY TROOP AT WUCHANG POSTCARD 大清武昌炮队.jpg
        1900s WUCHANG Panorama many buildings Postcard Wuhan Hubei CHINA.jpg
        1910 China Hankow pagoda postcard - city general view bay.jpg
        1930s China Antique Original Photograph Chinese Wuhan Zhongshan Park Gate 30.jpg
        1930s China Wuhan Antique Original Photograph Chinese broken building 29.jpg
        1930s China Wuhan Antique Original Photograph Chinese building 28.jpg
        1930s China Wuhan Antique Original Photograph Chinese Street 35.jpg

        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  . Évalué à 1.

          Edit :

          Cela liste toutes les photos du dossier "Wuhan", mais les dossiers dans "Wuhan" ne sont pas listés.

          Ah si, ils sont bien listés.

          arnauld

    • [^] # Re: non

      Posté par  (Mastodon) . Évalué à 5.

      Si j'essaye avec rm -rf 'Hankow 1903-1910'

      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  . É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  . Évalué à 3. Dernière modification le 19 décembre 2018 à 18:01.

          des noms de dossiers contenant un retour chariot

          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  (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  (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  . Évalué à 6.

          vu les problèmes de nommage que arnaud a déjà eu par le passé

          :-)

          En effet, cela semble être la cause de mon problème.

          Après avoir fait un ls dans le dossier "Wuhan" j'ai :

          http://i.imgur.com/84ywZXu.png

          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  . Évalué à 2.

            Merci xev de m'avoir rappelé mes problèmes de nommage.

            Ç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  . Évalué à 2.

            Je vois donc qu'avant le nom du dossier "Hankow…" il y a un espace qui doit être un caractère bizarre.

            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  . Évalué à 1.

        Si je fais rm -rf "Hankow il ne se passe rien…ça ne complète pas.

        arnauld

  • # Renommer, puis effacer

    Posté par  . É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.

  • # Rapport de bug

    Posté par  (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.