Bulk changing of file names using Terminal in OS X


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Bulk changing of file names using Terminal in OS X
# 1  
Old 12-30-2015
Bulk changing of file names using Terminal in OS X

I want to change the name of several files within a folders (directory) and subdirectories in OS X. If I only wanted to change file names within the directory I guess I would use:

rm photo*.jpg picture*.jpg

I have lots of subdirectories, is there a way of getting the file changes for all subdirectories without having to do each folder in turn?
# 2  
Old 12-30-2015
Can you give an example? That is... is there a pattern to the renaming?

For example find all photo0001.jpg and change them to vacation2015_0001.jpg for each numeric named photo anywhere in the folder and sub folders.
# 3  
Old 12-30-2015
Quote:
Originally Posted by ademanuele
I want to change the name of several files within a folders (directory) and subdirectories in OS X. If I only wanted to change file names within the directory I guess I would use:

rm photo*.jpg picture*.jpg

I have lots of subdirectories, is there a way of getting the file changes for all subdirectories without having to do each folder in turn?
Please, do not do that. rm means remove not rename


Here's an example to start with using find and Perl.

Code:
find . -name "photo*.jpg" -type f | perl -nle '$new=$_; $new=~s/photo/picture/; rename $_, $new unless $_ eq $new'

That would rename any file photo*.jpg to picture*.jpg in the current and subdirectories, as long as no directory has photo as part of its name.

Last edited by Aia; 12-30-2015 at 01:56 PM.. Reason: Add warning about directory name
This User Gave Thanks to Aia For This Post:
# 4  
Old 12-30-2015
Yes, your example is what I am trying to achieve, e.g. changing photo001.jpg, photo002.jpg, photo003.jpg etc and change the name to picture001.jpg, picture002.jpg, picture003.jpg (this is just an example)
# 5  
Old 12-30-2015
Try also
Code:
find . -name "photo*.jpg" | while read FN; do echo mv "$FN" "${FN/photo/picture}"; done

Remove the echo when happy with the result.

Double quotes (thanks, Aia!) in the mv command prevent problems when file names contain e.g. spaces.

Last edited by RudiC; 12-30-2015 at 02:53 PM..
# 6  
Old 12-30-2015
Thanks Aia, did the trick!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Changing file names

sac_pzs_iv_epoz_hhe__2013.074.14.40.46.0000_2599.365.23.59.59.99999 sac_pzs_iv_epoz_hhn__2013.074.14.40.46.0000_2599.365.23.59.59.99999 sac_pzs_iv_epoz_hhz__2013.074.14.40.46.0000_2599.365.23.59.59.99999 sac_pzs_iv_haga_hhe__2006.111.00.00.00.0000_2599.365.23.59.59.99999... (3 Replies)
Discussion started by: kristinu
3 Replies

2. Debian

Changing file extension names

Hi I have a list of files :root@L28mustang:/var/log/exim4/2017/Jul2017_Blast_BC07# ls -lrt | grep mainlog -rw-r----- 1 Debian-exim adm 3636932 Jul 8 06:25 mainlog.3.gz -rw-r----- 1 Debian-exim adm 919512 Jul 9 06:27 mainlog.2.gz -rw-r----- 1 Debian-exim adm 7655054 Jul 10 06:25 mainlog.1... (1 Reply)
Discussion started by: anaigini45
1 Replies

3. Shell Programming and Scripting

Changing file names

I have a series of files as follows file-1.pdf file-2.pdf file-3.pdf file-4.pdf file-5.pdf file-6.pdf file-7.pdf I want to have the file names with odd numbers starting from an initial number, for example 2000. The result would be the following: file-2001.pdf file-2003.pdf... (9 Replies)
Discussion started by: kristinu
9 Replies

4. Shell Programming and Scripting

Changing file names

I have file names as shown and want to change the name to have only the first four numbers. /home/chrisd/Desktop/nips/nips_2013/5212-learning-feature-selection-dependencies-in-multi-task-learning.pdf /home/chrisd/Desktop/nips/nips_2013/5213-parametric-task-learning.pdf... (3 Replies)
Discussion started by: kristinu
3 Replies

5. Shell Programming and Scripting

[SOLVED] Changing file names

I have written a csh script that changes the name of file from src to dst. I am getting the error below: TESTAmvfiles DONE TESTAmvfiles set: Variable name must begin with a letter. The csh script is: #!/bin/csh #... (0 Replies)
Discussion started by: kristinu
0 Replies

6. Shell Programming and Scripting

How to bulk changing partial file name in Linux?

I have a bunch of database files in a directory. Their name are like: 1234_ABCD_01.dbf, 28hrs_ABCD_02.dbf I want to change them in bulk to: 1234_XXXU_01.dbf, 28hrs_XXXU_02.dbf. I mean I just want to replace ABCD by XXXU. don't change other part of the file name and the contents of the... (4 Replies)
Discussion started by: duke0001
4 Replies

7. Shell Programming and Scripting

Changing file names

I have lot of files whose names are something like the following. I want to change the name of all the files from 'npt02' to 'n02'. npt02-z30-sr65-rgdt0p50-dc0p01-16x12drw.tpf npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw.back npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw-bst-mis.xy... (5 Replies)
Discussion started by: kristinu
5 Replies

8. Shell Programming and Scripting

Changing names

I have file names m04-npt06-z30-syn.ps m04-npt06-dp018-8x6smp.vmod m04-npt06-sr40-syn-dp01-16x12drw.params m04-npt06-sr40-syn-dp008-16x12drw.params m04-npt06-sr40-syn-dp008-16x12drw.vmod m04-npt06-sr40-syn-dp008-16x12drw.bck m04-npt06-sr40-syn-dp008-16x12drw.exp... (6 Replies)
Discussion started by: kristinu
6 Replies

9. Shell Programming and Scripting

Changing file names with AWK

Dear All, I have some thousands of files in a folder and i need to change those file names without opening the file (no need to change anything in the file content, need to change the file name only). The filenames are as follows: Myfile_name.1_parameter Myfile_name.2_parameter... (6 Replies)
Discussion started by: Fredrick
6 Replies

10. Shell Programming and Scripting

changing file names to lowercase

hey guys having some trouble figuring this out. my program is supposed to take a name of a directory as a command line argument and change the filenames inside that directory to lowercase. what i dont get is how you access that directory and go thru all the files and change the filenames... (1 Reply)
Discussion started by: 30177005
1 Replies
Login or Register to Ask a Question