0 votos

renombrar series de ficheros que difieren en extensión dentro del mismo directorio utilizando el terminal

Tengo una serie de archivos que difieren en extensión (por ejemplo, a.txt , a.ps , a.pdf etc.) y quisiera copiarlos en una serie de archivos nuevos con un nombre diferente ( b.txt , b.ps , b.pdf etc.), preferiblemente utilizando el terminal, ya que desde allí realizo todas las demás operaciones necesarias. Hace años, yo solía ser capaz de hacer esto en un PC de símbolo del sistema de manera bastante sencilla con:

copy d.* a.*

en el directorio de trabajo.

Tengo problemas para averiguar/encontrar el comando correspondiente de OSX. Siento que me estoy perdiendo algo obvio aquí, pero simplemente no puedo resolverlo.

Se agradece la ayuda. Gracias por su tiempo.

1voto

Greenonline Puntos 373

Este comando parece hacer lo que usted desea

for file in *.* ; do cp $file ${file//a\./b\.} ; done

Adaptado de esta respuesta a Renombrar parte de un nombre de archivo

En realidad, podrías hacerlo:

for file in * ; do cp $file ${file//a\./b\.} ; done

Tenga en cuenta que el . debe escaparse utilizando \. . Esto se debe principalmente a que su ejemplo es un nombre de archivo de una sola letra, que podría potencialmente en conflicto con una letra de la prórroga.

Si los nombres de los archivos son un poco más explícitos, por ejemplo doggy.txt , doggy.pdf , doggy.xls etc., y desea cambiarlos a feline.txt , feline.pdf ..., etc., entonces se podría prescindir de escapar del . (y el . todo junto), así:

for file in * ; do cp $file ${file//doggy/feline} ; done

Tenga en cuenta que los comandos anteriores crearán un copia de los archivos, es decir

% ls
a.pdf   a.txt   a.xls   b.pdf   b.txt   b.xls

Si sólo desea renombrar a continuación, utilice mv en su lugar:

for file in * ; do mv $file ${file//a\./b\.} ; done

o

for file in * ; do mv $file ${file//doggy/feline} ; done

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X