Certains de vos noms commencent par -
, donc passez d'abord --
ou utilisez un chemin absolu.
Pour les répertoires vides, utilisez la commande rmdir
et écrivez --
comme un mot séparé avant le nom du premier répertoire à supprimer. Si --
n'a pas été passé (ce qui s'applique également aux commandes que vous avez essayées ainsi qu'à rmdir
), alors les mots commençant par -
seront interprétés comme des collections d'options contrôlant le comportement de la commande plutôt que comme des noms de fichiers sur lesquels la commande doit agir.
Vous devrez écrire vos commandes en fonction des noms de répertoires que vous avez. En raison d'erreurs possibles dans la mise en forme des noms de fichiers dans l'éditeur visuel de Stack Exchange, c'est un cas où je ne recommande pas de copier directement depuis cette réponse. Cependant, voici un exemple que je vous invite à modifier selon vos besoins, si vous avez un répertoire nommé :
-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR
Et s'il est vide, et que vous êtes dans son répertoire parent (vous pouvez utiliser cd
pour y aller et pwd
pour vérifier dans quel répertoire vous vous trouvez actuellement), alors vous pouvez le supprimer de cette manière :
rmdir -- -9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR
Ou, s'il est détenu par root ou que vous n'avez pas les permissions pour le supprimer :
sudo rmdir -- -9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR
Remarquez qu'il y a un espace après l'argument --
. C'est important.
Ou vous pouvez utiliser le chemin complet du répertoire. Ensuite, vous n'avez pas à vous soucier du répertoire dans lequel vous vous trouvez lorsque vous exécutez la commande et le --
est facultatif. Par exemple (basé sur ce que vous avez montré dans un commentaire) :
rmdir /media/me/702E29F142F/-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR
(Ou avec sudo rmdir
, comme ci-dessus.)
Certains noms peuvent contenir des caractères nécessitant des guillemets.
Si cela ne vous aide pas et que vous continuez à rencontrer le même message Aucun fichier ou répertoire de ce type, alors le problème est que vous ne nommez pas correctement les répertoires. Apparemment, leurs noms contiennent des caractères inhabituels.
Il n'est pas évident que ce soit le cas compte tenu de ce que vous avez montré, mais c'est un problème courant donc je le mentionne au cas où. Si les noms de vos répertoires contiennent des espaces ou d'autres caractères traités spécialement par le shell comme les sauts de ligne, *
ou $
, alors vous devriez les encapsuler entre des guillemets simples. Cela sera suffisant tant que les noms eux-mêmes ne contiennent pas de guillemets simples.
Plus généralement, si vous avez utilisé cd
pour vous rendre dans le répertoire qui contient ces répertoires, vous devriez pouvoir obtenir une liste des entrées dans ce répertoire (y compris les sous-répertoires que vous souhaitez supprimer) en exécutant :
ls -1b
Cela diffère d'une commande ls
ordinaire de deux façons utiles :
- Le drapeau
-b
fait en sorte que les chemins soient imprimés avec des séquences d'échappement qui peuvent être collées entre $'
'
. Aucun espace ne doit apparaître entre le $
initial et le caractère d'ouverture '
.
- Le drapeau
-1
fait en sorte que ls
liste une entrée par ligne. Cela peut aider à réduire la confusion sur la fin d'un nom de fichier et le début du suivant.
Cela devrait vous permettre de rédiger des commandes qui suppriment, renomment, etc. ces répertoires. S'ils sont vraiment vides, vous pourrez ensuite utiliser la commande rmdir
pour les supprimer. Vous devrez peut-être exécuter cette commande en tant que root, ce que vous pouvez faire avec sudo
.
Voici une illustration délibérément simplifiée des commandes que vous pourriez exécuter. Supposons que ls -1b
ait listé :
abc\ def
ghi\njkl
pqr\b\b\bstuv
$$$$$$$\b\b\b$$$
Dans le premier cas, il y a un espace. Dans le deuxième cas, il y a un saut de ligne. Dans le troisième cas, il y a trois caractères de retour en arrière. Dans le quatrième cas, il y a à la fois des caractères $
et de retour en arrière.
Pour supprimer ces répertoires, vous pourriez utiliser :
rmdir -- $'abc\ def'
rmdir -- $'ghi\njkl'
rmdir -- $'pqr\b\b\bstuv'
rmdir -- $'$$$$$$$\b\b\b$$$'
Comme précédemment, vous pourriez avoir besoin de sudo
.
rmdir
peut prendre plusieurs noms de fichiers, mais si vous utilisez une commande par suppression, il peut être plus facile de comprendre les messages d'erreur que vous recevez, le cas échéant.
Dans ces exemples particuliers, les noms de répertoires ne commençaient pas par -
et le drapeau --
n'était pas nécessaire. Mais cela n'a pas fait de mal.
$'
'
versus simple '
'
Contrairement à l'utilisation de guillemets simples '
'
, l'utilisation de guillemets $'
'
provoque l'expansion d'échappements en barre oblique comme \n
et \b
.
'ghi\njkl'
identifie un fichier dont le nom est littéralement :
En revanche, $'ghi\njkl'
identifie un fichier dont le nom est :
Si vous utilisez un navigateur de fichiers graphique, vous pouvez peut-être le faire glisser dedans.
Avec certains navigateurs de fichiers graphiques (comme Nautilus, c'est-à-dire "Files") et certains terminaux (comme GNOME Terminal), il existe un moyen encore plus facile d'obtenir un chemin absolu utilisable vers un fichier dans une commande de terminal que vous rédigez.
Cela fonctionnera sur la plupart des systèmes Ubuntu qui ont une interface graphique installée, mais cela ne fonctionnera pratiquement jamais lorsque vous vous connectez à distance via SSH.
Vous pouvez glisser le dossier depuis la fenêtre du navigateur de fichiers dans la fenêtre du terminal pour coller le chemin complet jusqu'à lui dans le terminal. Avec votre souris sur la fenêtre du terminal, relâchez le bouton.
Pour que cela soit utile, la meilleure approche est d'écrire la commande que vous souhaitez exécuter en premier. Par exemple, écrivez ceci et incluez un espace à la fin mais ne pressez pas Enter encore :
rmdir --
Ensuite, faites glisser le dossier depuis la fenêtre du navigateur de fichiers dans la fenêtre du terminal. Si votre navigateur de fichiers et votre émulateur de terminal le supportent, vous devriez voir un chemin collé, avec un formatage automatique en barre oblique ou guillemets fourni. Vous pourrez ensuite presser Enter pour exécuter la commande. Même si la commande ne réussit pas, cela donnera généralement un message d'erreur plus utile que Aucun fichier ou répertoire de ce type.