55 votes

Impossible de renommer un fichier dont le nom commence par un tiret.

Je essaie de renommer un fichier avec un tiret au début de son nom et les deux ceci:

mv -example-file-name example-file-name

et ceci:

mv '-example-file-name' example-file-name

résultat en:

mv: option invalide -- 'e'

86voto

RedGrittyBrick Points 78148

La plupart des commandes GNU/Linux permettent d'utiliser une option -- pour indiquer la fin des options, de sorte que les mots suivants préfixés par - ne soient pas traités comme des options.

  mv -- -exemple-nom-fichier exemple-nom-fichier

Un petit test

$ touch -- -exemple
$ ls -l -- *ample
-rw-r--r-- 1 rgb rgb 0 Nov 25 09:57 -exemple
$ mv -- -exemple exemple
$

21voto

charlesX Points 63

La réponse de RedGrittyBrick est très bonne. Une autre option est :

mv ./-nom-du-fichier-exemple nom-du-fichier-exemple

Un petit test :

$ touch ./-exemple
$ ls -l ./*ample
-rw-r--r-- 1 moi moi 0 Nov 25 16:02 ./-exemple
$ mv ./-exemple exemple
$ ls -l ./*ample
-rw-r--r-- 1 moi moi 0 Nov 25 16:02 ./exemple

1voto

user607722 Points 327

Cette astuce fonctionne pour moi en temps de désespoir. Votre expérience peut varier

rename \- '' *

Vous devez échapper le tiret pour que rename le reconnaisse. Pourquoi rename ne respecte pas les simples quotes ou n'offre pas une option de remplacement est au-delà de moi.

C'est la seule méthode que j'ai vue qui gère de manière fiable un tiret initial en utilisant rename. Je suis d'accord avec les autres messages sur l'utilisation de mv, mais si vous ne pouvez pas utiliser mv pour une raison quelconque, cela fonctionne.

0voto

k-five Points 11

Vous pouvez utiliser ceci :

rename -- "s/\-//g" *

ce qui permet de renommer tous les fichiers :) si votre nom de fichier :

-ng--sh-ay-01[------------]-FLV

après l'exécution du code, votre nom de fichier deviendra :

ngshay01[]FLV

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