Jak dodać rozszerzenie do wszystkich plików za pośrednictwem terminala

8

Chciałbym dodać rozszerzenie .zip do wszystkich plików. Próbowałem tego, ale to nie działa:

ls | awk '{print  " " ".zip"}' | xargs mv -f
    
zadawane UAdapter 31.10.2011, 10:06
źródło

5 odpowiedzi

2

Wyszukiwanie - kilka linków:

  1. Rekurencyjne dodawanie rozszerzeń plików do wszystkich plików - Stack Overflow
  2. Dodaj rozszerzenie pliku do plików z bash - Stack Overflow

man rename:

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

    
odpowiedział user26687 31.10.2011, 10:17
źródło
14
for f in * ; do 
  mv "$f" "$f.zip"
done
    
odpowiedział elmicha 31.10.2011, 10:18
źródło
10
rename 's/$/\.zip/' *

Do tego nie używaj xargs !

    
odpowiedział Adobe 01.11.2011, 12:21
źródło
3

Bardzo prostym sposobem na to jest:

jeśli chcesz zachować bieżące rozszerzenie:

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

jeśli chcesz zastąpić bieżące rozszerzenie:

for i in *; do mv $i ${i%.*}.zip; done
    
odpowiedział dmx 20.04.2017, 01:03
źródło
0

To powinno wystarczyć:

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

(Chociaż nie mam pojęcia, dlaczego chciałbyś to zrobić ...)

    
odpowiedział xubuntix 31.10.2011, 10:17
źródło

Przeczytaj inne pytania na temat tagów