How to add an extension to all files via terminal

I would like to add the .zip extension to all files. I tried this, however it does not work:

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

5 Answers

for f in * ; do mv "$f" "$f.zip"
done
rename 's/$/\.zip/' *

Don't use xargs for that!

2

Searching - few links:

  1. Recursively add file extension to all files - Stack Overflow
  2. Add file extension to files with 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:

1

A very simple way to do that is :

if you want to keep current extension:

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

if you want to replace current extension:

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

This should do the trick:

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

(Although I have no idea why you would want to do this...)

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like