Estoy tratando de cambiar el nombre de un archivo con un guión al comienzo de su nombre y esto:
mv -example-file-name example-file-name
y esto:
mv '-example-file-name' example-file-name
resulta en:
mv: invalid option -- 'e'
linux
command-line
bash
shell
Desmond Hume
fuente
fuente
mv *example-file-name example-file-name
tiene el mismo problema, porque antesmv
se llama a la expansión del nombre de archivo (AKA globbing) .Respuestas:
La mayoría de los comandos de GNU / Linux permiten que una
--
opción indique el final de las opciones para que las-
palabras prefijadas posteriores no se traten como opciones.Una pequeña prueba
fuente
rename
. (al menos la versión que funcionarename [options] <expression> <replacement> <file>...
, cualquiera que sea)mv
no tiene esto :(La respuesta de RedGrittyBrick es muy buena. Otra opción es:
Una pequeña prueba:
fuente
--
.Puedes usar esto:
que puede cambiar el nombre de todos los archivos :) si su nombre de archivo:
después de ejecutar el código, su nombre de archivo se convierte en:
fuente
Este truco me funciona en tiempos de desesperación. YMMV
Tienes que escapar del guión para cambiar el nombre para reconocerlo. Por qué renombrar no respeta comillas simples u ofrecer una anulación de algún tipo está fuera de mi alcance.
Este es el único método que he visto que maneja de manera confiable un guión inicial usando renombrar. Estoy de acuerdo con las otras publicaciones sobre el uso de mv, pero si no puede usar mv por alguna razón, esto funciona.
fuente