So fügen Sie allen Dateien über das Terminal eine Erweiterung hinzu

14

Ich möchte allen Dateien die Erweiterung .zip hinzufügen. Ich habe es versucht, aber es funktioniert nicht:

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

Antworten:

5

Suchen - wenige Links:

  1. Fügen Sie allen Dateien rekursiv eine Dateierweiterung hinzu - Stapelüberlauf
  2. Hinzufügen einer Dateierweiterung zu Dateien mit bash - Stack Overflow

Mann umbenennen:

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

Mann-Wiki: http://en.wikipedia.org/wiki/Man_page

user26687
quelle
1
thx, basierend darauf konnte ich es so machen - ls | xargs -I% mv
%%
19
for f in * ; do 
  mv "$f" "$f.zip"
done
Elmicha
quelle
15
rename 's/$/\.zip/' *

Nicht dafür verwenden xargs!

Adobe
quelle
Warum nicht Xargs verwenden?
UAdapter
2
Nun - es gibt einfach keinen Grund!
Adobe
4

Ein sehr einfacher Weg, dies zu tun, ist:

Wenn Sie die aktuelle Erweiterung beibehalten möchten:

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

Wenn Sie die aktuelle Erweiterung ersetzen möchten:

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

Dies sollte den Trick tun:

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

(Obwohl ich keine Ahnung habe, warum Sie das tun möchten ...)

xubuntix
quelle