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

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


1
thx, com base nisso, eu era capaz de fazer assim - sl | xargs -I% mv
%%


15
rename 's/$/\.zip/' *

Não use xargspara isso!


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

0

Isso deve fazer o truque:

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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.