Cómo agregar una extensión a todos los archivos a través del terminal

14

Me gustaría agregar la extensión .zip a todos los archivos. Intenté esto, sin embargo no funciona:

ls | awk '{print $1 " " $1".zip"}' | xargs mv -f
Adaptador UA
fuente

Respuestas:

5

Buscando - pocos enlaces:

  1. Agregue recursivamente la extensión de archivo a todos los archivos
  2. Agregue extensión de archivo a archivos con bash

cambiar el nombre del hombre:

NAME
       rename - renames multiple files

SYNOPSIS
       rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

DESCRIPTION
       "rename" renames the filenames supplied according to the rule specified as 
       the first argument.  The perlexpr argument is a Perl expression which is 
       expected to modify the $_ string in Perl for at least some of the filenames 
       specified. If a given filename is not modified by the expression, it will not 
       be renamed.  If no filenames are given on the command line, filenames will be 
       read via standard input...

wiki de hombre: http://en.wikipedia.org/wiki/Man_page

usuario26687
fuente
1
gracias, basado en eso pude hacerlo así - ls | xargs -I% mv
%%
19
for f in * ; do 
  mv "$f" "$f.zip"
done
elmicha
fuente
15
rename 's/$/\.zip/' *

¡No lo uses xargspara eso!

Adobe
fuente
¿Por qué no usar xargs?
UAdapter
2
Bueno, ¡simplemente no hay razón!
Adobe
4

Una forma muy simple de hacerlo es:

si quieres mantener la extensión actual:

for i in *; do mv $i ${i}.zip; done     

si desea reemplazar la extensión actual:

for i in *; do mv $i ${i%.*}.zip; done
dmx
fuente
0

Esto debería funcionar:

mmv "./*" "./#1.zip"

(Aunque no tengo idea de por qué querrías hacer esto ...)

xubuntix
fuente