Como adicionar uma extensão a todos os arquivos via terminal

14

Gostaria de adicionar a extensão .zip a todos os arquivos. Eu tentei isso, no entanto, não funciona:

ls | awk '{print $1 " " $1".zip"}' | xargs mv -f
UAdapter
fonte

Respostas:

5

Pesquisando - alguns links:

  1. Adicionar recursivamente a extensão de arquivo a todos os arquivos - Stack Overflow em Português
  2. Adicionar extensão de arquivo a arquivos com bash - Stack Overflow em Português

homem renomear:

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 do man: http://en.wikipedia.org/wiki/Man_page

user26687
fonte
1
thx, com base nisso, eu era capaz de fazer assim - sl | xargs -I% mv
%%
19
for f in * ; do 
  mv "$f" "$f.zip"
done
elmicha
fonte
15
rename 's/$/\.zip/' *

Não use xargspara isso!

Adobe
fonte
por que não usar xargs?
UAdapter
2
Bem - simplesmente não há razão!
Adobe
4

Uma maneira muito simples de fazer isso é:

se você deseja manter a extensão atual:

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

se você deseja substituir a extensão atual:

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

Isso deve fazer o truque:

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

(Embora eu não tenha idéia de por que você faria isso ...)

xubuntix
fonte