
Tengo un problema para cambiar el nombre del siguiente archivo.
-data-02-03-04.dat
Supongo que el problema proviene del nombre del archivo que comienza con un guión. Recibo el siguiente error al intentar cambiarle el nombre.
rename -data-02-03-04.dat data020304.dat
Unknown option: data-02-03-04.dat
Usage:
rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ]
[ -e|-E perlexpr]*|perlexpr [ files ]
Respuesta1
En realidad, el problema proviene del nombre del archivo que comienza con un guión, por lo que se toma como una opción del rename
comando en lugar de como un argumento. Para evitar el problema, simplemente siga la ruta del archivo:
mv ./-data-02-03-04.dat data020304.dat
Utilicé el mv
comando que es más conveniente para un solo archivo. rename
El comando se usa principalmente para cambiar el nombre por lotes y requiere una perl
expresión regular.
Como se ha señaladoaquí, otra forma de solucionar el problema es agregar un guión doble --
para indicar el final de las opciones del comando:
mv -- -data-02-03-04.dat data020304.dat
Respuesta2
rename
no hace lo que crees que hace.
Podrías hacer una de las siguientes cosas:
mv ./-data-02-03-04.dat data020304.dat
mv -- -data-02-03-04.dat data020304.dat
Si realmente desea utilizar el cambio de nombre, la sintaxis correcta sería:
rename 's/-//g' ./-data-02-03-04.dat
rename 's/-//g' -- -data-02-03-04.dat