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

8

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

ls | awk '{print  " " ".zip"}' | xargs mv -f
    
por UAdapter 31.10.2011 / 10:06

5 respostas

2

Pesquisando - poucos links:

  1. Adicione recursivamente a extensão do arquivo a todos os arquivos - Stack Overflow
  2. Adicionar extensão de arquivo a arquivos com o bash - Stack Overflow

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...

man wiki: link

    
por user26687 31.10.2011 / 10:17
12
for f in * ; do 
  mv "$f" "$f.zip"
done
    
por elmicha 31.10.2011 / 10:18
10
rename 's/$/\.zip/' *

Não use xargs para isso!

    
por Adobe 01.11.2011 / 12:21
2

Uma maneira muito simples de fazer isso é:

se você quiser manter a extensão atual:

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

se você quiser substituir a extensão atual:

for i in *; do mv $i ${i%.*}.zip; done
    
por dmx 20.04.2017 / 01:03
0

Isso deve funcionar:

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

(Embora eu não tenha ideia de por que você gostaria de fazer isso ...)

    
por xubuntix 31.10.2011 / 10:17