12 votes

La commande mv confond le nom du répertoire avec l'option de commande

J'ai un répertoire appelé --pycache-- que je dois déplacer vers __pycache__ . L'utilisation de l'outil mv de la manière suivante, j'obtiens le résultat indiqué. Comment puis-je utiliser la commande CLI de faire ce que je veux ?

$ mv --pycache-- __pycache__
/bin/mv: unrecognized option '--pycache--/'

22voto

vtest Points 4962

Il s'agit d'un problème courant avec les noms de fichiers/répertoires commençant par des symboles moins conventionnels. Votre problème est que mv traite --pycache-- comme un nom d'option long (puisqu'il commence par --, il y a aussi des options courtes, elles commencent par -). Veuillez consulter la page de manuel de getopt pour plus de détails sur les options longues et courtes.

La solution standard dans cette situation consiste à utiliser un double tiret vide -- before all argument, qui indique à la commande (mv dans votre cas, mais cela fonctionnera avec d'autres, cp par exemple) d'arrêter de traiter ce qui suit comme des options et de le traiter comme des arguments.

Ainsi, votre commande deviendra :

$ mv -- --pycache--/ __pycache__

et n'échouera pas.

16voto

yms Points 778

Votre premier personnage - est ambiguë pour le mv (ou plutôt, cela signifie sans ambiguïté qu'un nom d'option suit).

Essayez plutôt ceci :

mv ./--ppycache-- __pycache__

Fuente: linux.about.com

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X