Change All File Names in a Directory


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Change All File Names in a Directory
# 1  
Old 01-20-2008
Change All File Names in a Directory

Hi,

If I have a directory full of say 100 random files, and I would like to organize them, for example: FILE001, FILE002, FILE003, FILE004, etc.

How would I do this from Terminal, instead of manually changing each file? I'm using Mac OS X, if that makes a difference.

Thank you in advance for any help Smilie
# 2  
Old 01-21-2008
Try...
Code:
c=0
for i in *
do 
   test -f $i &&\
   mv $i $(printf "FILE%03i" $c) &&\
   ((c+=1))
done

# 3  
Old 01-21-2008
Try this

[code ]
#!/bin/bash
dir="path name"
i=0
for filename in `ls -1t $dir/`
do
i=`expr $i + 1`
mv $dir/$filename $dir/ex$i
done

[code ]
# 4  
Old 01-21-2008
multiple file renaming

say you have files like below...
jordba.package1
jordba.package2
jordba.package3

use the below:
for f in jordba.*; do mv "$f" "${f#jordba.}"; done

the above for loop will make your list like...

package1
package2
package3

========================


but there is another issue similar to the before that i have the files

x1_p.sql
x2_p.sql
x3_p.sql

and so on

i need to add h before .sql to be as the following:

x1_ph.sql
x2_ph.sql
x3_ph.sql


====================================

This should work for the data given by you above...

for f in *_p.sql ; do mv "$f" "${f%_p.sql}_ph.sql"; done


I hope these r helpful
# 5  
Old 01-22-2008
Quote:
Originally Posted by Ygor
Try...
Code:
c=0
for i in *
do 
   test -f $i &&\
   mv $i $(printf "FILE%03i" $c) &&\
   ((c+=1))
done

I tried this with a test directory of 17 Randomly named files. The result was sh: test: too many arguments 13 times and sh: test: Photo: binary operator expected 2 times. However, 2 of the files came out as expected: FILE002 and FILE003.

Sidenote: This is with .jpg files. I changed "FILE%03i" to "FILE%03i.jpg", so the two files came out: FILE002.jpg and FILE003.jpg. None of the other file names changed.
# 6  
Old 01-22-2008
Quote:
Originally Posted by thana
Try this

[code ]
#!/bin/bash
dir="path name"
i=0
for filename in `ls -1t $dir/`
do
i=`expr $i + 1`
mv $dir/$filename $dir/ex$i
done

[code ]
I'm not sure what to do with filename. I tried *.jpg and "*.jpg" and end up with: `*.jpg': not a valid identifier and `"*.jpg"': not a valid identifier, respectively.
# 7  
Old 01-22-2008
Quote:
Originally Posted by kukretiabhi13
say you have files like below...
jordba.package1
jordba.package2
jordba.package3

use the below:
for f in jordba.*; do mv "$f" "${f#jordba.}"; done

the above for loop will make your list like...

package1
package2
package3

========================


but there is another issue similar to the before that i have the files

x1_p.sql
x2_p.sql
x3_p.sql

and so on

i need to add h before .sql to be as the following:

x1_ph.sql
x2_ph.sql
x3_ph.sql


====================================

This should work for the data given by you above...

for f in *_p.sql ; do mv "$f" "${f%_p.sql}_ph.sql"; done


I hope these r helpful
This works for me for renaming files that are already ordered 1, 2, 3, etc.

However, I want to take randomly named files, such as qwerty.jpg, blah.jpg 123_lol.jpg, and rename them to be ordered sequentially, such as: 2007NOV03001.jpg, 2007NOV03002.jpg, 2007NOV03003.jpg, etc.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to change file names

I have a landing directory on my unix (solaris) server, that receives the following files: MLH4301I AAOT-hhslog.610.20150805.txt MLH4301I AAOT-hhslog.611.20150805.txt MLH4301I AAOT-hhslog.612.20150805.txt MLH4301I AAOT-hhslog.613.20150805.txt and I need to add to this files the number 10000... (6 Replies)
Discussion started by: fretagi
6 Replies

2. Shell Programming and Scripting

Change the file name and copy old file content to new file names.

Hi, I have a files in a directory as below :- ls -1 mqdepth-S1STC02 proc-mq-S1STC01 proc-mq-S1STC02 proc-mq-S1STC03 Whereever i have S1STC i need to copy them into new file with file name S2STC. expected output :- ls -1 mqdepth-S2STC02 proc-mq-S2STC01 proc-mq-S2STC02... (3 Replies)
Discussion started by: satishmallidi
3 Replies

3. Shell Programming and Scripting

Challenge to change file names

Hi, How can I change following file name in a bash script? From file names: myfile-module-1.0-3.0.el6.x86_64.package To file names: myfile-module1_0-1.0-3.0.el6.x86_64.package ^ ^ ^ ^ ^ ^ ^ ^ Basically, the digit 1.0 is a version number, the digit 3.0 is... (11 Replies)
Discussion started by: hce
11 Replies

4. UNIX for Dummies Questions & Answers

Change sequence names in fasta file

I have fasta files with multiple sequences in each. I need to change the sequence name headers from: >accD:_59176-60699 ATGGAAAAGTGGAGGATTTATTCGTTTCAGAAGGAGTTCGAACGCA >atpA_(reverse_strand):_showing_revcomp_of_10525-12048 ATGGTAACCATTCAAGCCGACGAAATTAGTAATCTTATCCGGGAAC... (2 Replies)
Discussion started by: tyrianthinae
2 Replies

5. Red Hat

How to change name to get rid of name in front of file names?

admin.campaign.sql admin.cardnumber_filter.sql understand that rename is using mv command but how do I rename such that it become the following: campaign.sql cardnumber_filter.sql thanks (2 Replies)
Discussion started by: jediwannabe
2 Replies

6. Shell Programming and Scripting

change multiple file names

Hi is it possible to change multiple files (~10k) names with out disturbing the data in it. ? input Hynda|cgr10(+):100027702-1000312480|.txt Hynda|cgr10(+):100027702-1000312483|.txt Hynda|cgr10(+):100027702-1000312484|.txt Hynda|cgr10(+):100027702-1000312482|.txt output... (4 Replies)
Discussion started by: quincyjones
4 Replies

7. Shell Programming and Scripting

Grepping file names, comparing them to a directory of files, and moving them into a new directory

got it figured out :) (1 Reply)
Discussion started by: sHockz
1 Replies

8. Shell Programming and Scripting

Change multiple file names

Hello, I have some files in a directory like: 01_07_2010_aa.txt 01_07_2010_bb.txt 01_07_2010_cc.txt 01_07_2010_dd.txt 01_07_2010_ee.txt 01_07_2010_ff.txt I want to change their names to : 3nm_aa.txt 3nm_bb.txt 3nm_cc.txt 3nm_dd.txt 3nm_ee.txt 3nm_ff.txt (8 Replies)
Discussion started by: ad23
8 Replies

9. Shell Programming and Scripting

Searching for file names in a directory while ignoring certain file names

Sun Solaris Unix Question Haven't been able to find any solution for this situation. Let's just say the file names listed below exist in a directory. I want the find command to find all files in this directory but at the same time I want to eliminate certain file names or files with certain... (2 Replies)
Discussion started by: 2reperry
2 Replies

10. Shell Programming and Scripting

How to change automatically the file names

Hi all, I need to replace automatically all special characters of one filename with some corresponding characters For example > --> oe --> ae .... If the special character comes more than one time, then all the coccuerences have to be replaced. I would like to have a... (6 Replies)
Discussion started by: MAKY
6 Replies
Login or Register to Ask a Question