This blog entry is related to old post here. The only difference is that this time around it would be done recursively.
If you have hundreds of files with a common filename located from direcoty and its subdirectories, and you wish to have their filenames renamed to fielname with all uppercase letters - this blog can provide the concept on how to achieve that. And if you wish to remove space character from those hundreds of filename recursively, this blog entry can spark the idea on how to do that as well.
Supposed we want to rename all *.mp3 files with lowercase characters to *.mp3, you will the concept below on how to do this.
Sample scenario #1
# cd /tmp
# find /tmp/songs *.mp3 -type f
output:
/tmp/songs/filefile1.mp3
/tmp/songs/dir1/file2.mp3
/tmp/songs/dir1/dir5/file3.mp3
/tmp/songs/dir2/dir3/dir4/file6.mp3
/tmp/songs/dir2/dir3/file5.mp3
/tmp/songs/dir2/file4.mp3
/tmp/songs/file1.mp3
file1.mp3
filefile1.mp3
An overview of these MP3 files in tree view
The next step is to rename all these *.mp3 file collections into its uppercase form filenames and do it recursively. This can be done using combinations of linux command done in loop concept.
From this blog entry, we would be renaming their *.mp3 filenames into a filename with all uppercase letters. There are hundreds of ways to do it and here's one way to achieve this goal.
# for file in `find /tmp/songs *.mp3 -type f`; do uppername=`basename $file | tr [:upper:] [:lower:]`; dirs=`dirname $file`; mv $file $dirs/$uppername; done
The modular equivalent of the above command would be like
# fetch those *.mp3 files recursively starting from /tmp/songs
for file in `find /tmp/songs *.mp3 -type f`;
do
# convert filename (without the directory path) to uppercase
uppername=`basename $file | tr [:lower:] [:upper:]`;
# preserved the directory path
# to avoid attempts of renaming/moving directory as well
dirs=`dirname $file`;
# now rename smallfilename to BIGFILENAME appended from original directory path
mv $file $dirs/$uppername;
done
# exit
You can modify the above and change a few lines of it or maybe use a while loop instead of for loop. You can also use xargs for passing arguments but the concept would still be the same of changing the the lowercase letters to uppper case letters of filenames recursively.
Take a look on what we have achieved using a one line renaming of multiple files
# find /tmp/songs *.MP3 -type f
output:
/tmp/songs/dir1/FILE2.MP3
/tmp/songs/dir1/dir5/FILE3.MP3
/tmp/songs/dir2/FILE4.MP3
/tmp/songs/dir2/dir3/dir4/FILE6.MP3
/tmp/songs/dir2/dir3/FILE5.MP3
/tmp/songs/FILE1.MP3
/tmp/songs/FILEFILE1.MP3
FILE1.MP3
FILEFILE1.MP3
Noticed that all lowercase MP3 files are converted to their uppercase form, which was done on recursive manner. You can also apply this approach to recursively rename and remove space characters from filenames under group subdirectory folder locations.
Linux makes simple task easier.
Hope this helps.
Subscription
Categories
- HowTos (612)
- Linux Devices (40)
- Linux Diggs (620)
- Linux News (1541)
- Linux Videos (24)
Recent Posts
Blog Archive
-
▼
2008
(2301)
-
▼
August
(1065)
- HOWTO: Managing Active Directory Users Under Linux...
- ATI R500: Mesa vs. Catalyst Benchmarking
- Wish list: 10 improvements for KDE 4.2
- LyX 1.6 is ready for release
- Make etexts pretty with GutenMark
- Hans Reiser Sentenced to 15-to-Life
- Novell Gets Close to Linux Foundation, Microsoft G...
- AXFS, Advanced Execute In Place Filesystem
- Microsoft Breaks IE8 Interoperability Promise
- Where the Linux laptops live
- Another Reason to Avoid Samsung, Microsoft and Nik...
- FreeBSD - A better chioce for the Open Desktop?
- Preventing Brute Force Attacks With Fail2ban On Fe...
- Interview: Andy Hertzfeld
- Nepomuk, KDE To Introduce the Semantic Desktop
- Nvidia 55nm Parts Are Bad Too
- Lenovo Demands Vow of Silence From Windows Wantaway
- Gerald Carter of Likewise talks about LDAP for Lin...
- Track your investments with Grism
- Android Market Debuts - Now Let's See Some Phones
- Distribution Release: Kiwi Linux 8.08
- What the FSF is doing Wrong
- EVDO and VoIP for remote audio transmission
- InformationWeek: Linux Foundation’s Collaboration ...
- Behind the Doors of the Free Software Foundation
- Dell Unveils New Vostros With Ubuntu
- Wikis in Education: Teaching Students to Share Kno...
- Quebec sued for ignoring Free Software
- The A-Z of programming languages: Python
- Thomas Vander Stichele: mach 0.9.4 ‘Maroc’ is rele...
- Thomas Vander Stichele: Congrats
- Automatic backup for sporadically connected client...
- Distribution Release: Turbolinux 12
- Flock Social Networking Web2.0 Browser in openSUSE
- Create Time-availability Maps with Perl and Google...
- Run emacs from init
- Development Release: PC-BSD 7.0 Beta 1
- Development Release: Pardus Linux 2008.1 Beta
- Linux Jumps To 13.4 Percent Of The Stalling Server...
- An open letter to Barack Obama and the DNC (or, ch...
- Greens urge end to software patents
- Developing For the Embedded Linux Nokia N810
- Running A File- And Print-Server With eBox On Ubun...
- Behind the doors of the Free Software Foundation
- Linux Foundation announces end user summit
- Eco Innovation in the Datacenter — A Slide Deck by...
- Interview with Tom Wickline, of the Bordeaux Project
- Can Open Source Replace Microsoft Exchange?
- BSD Job Trends
- Ignoring open source will put companies at a serio...
- Make etexts pretty with GutenMark
- LyX 1.6 is ready for release
- Linux Systems Being Hit By SSH-Key Attacks
- Debating the Firefox SSL Certificate
- Online Encyclopedia Shell Script For Linux And Unix
- Taking the Pulse of the Eclipse Ecosystem
- Astaro: Tapping the Channel for Security Revenue
- A Real Space Oddity Arrives at PC Pro
- The Problem With Open-source Revenue Models
- Four Twitter clients for Linux
- Nettop is "almost fanless"
- Vista FUD?
- Indywiki: Visual browser for Wikipedia
- 10 "Really Cool" Icon Sets for Ubuntu/GNOM...
- Psystar Responds to Apple Suit, Will Countersue
- Is There a Future for UltraSPARC Workstations?
- Acetoneiso2 - A Full Feature Rich Image/ISO Tool F...
- VisionTek Radeon HD 4870 X2 2GB
- How the bad documentation hurts GNU/Linux.
- Software Patents Riot Spreads to Four Continents
- New Version of Xen Hypervisor Hits the Streets
- Mozilla Introduces New Ubiquity Mashup Machine
- SSH Key-based Attacks
- Versioned MySQL Backups with Bazaar
- Penguins Linux Ad (YouTube video)
- KMess - MSN Messenger Client for KDE in openSUSE L...
- Voiceroute execs talk about going (mostly) open so...
- Inside the SFLC's "Practical Guide to GPL Comp...
- Space Cube - The World's Smallest Linux PC
- Sun for Sale?
- Be a Productive Linux User
- Cisco buys PostPath, targets Microsoft Exchange
- Easy file uploads with Droopy
- Development Release: Debian Live 5.0 Beta 1
- Moving LVM volumes to a different volume group
- Novell and Microsoft: Stop with the FUD already
- Anatomy of Linux Dynamic Libraries
- 5 Factors Making Ubuntu Server Business Ready
- 10 Fundamental Differences Between Linux and Windows
- Tailf - watch the linux log file grows
- Linux under attack: Compromised SSH keys lead to r...
- News to know: Psystar vs. Apple; WGA; Linux under ...
- One Less Windows User
- Development Release: SimplyMEPIS 8.0 Beta 1
- Be a Productive Linux User
- PostPath: Enterprise-strength open source alternat...
- RDesktop - remote desktop howto
- HowTo: Install Linux Hardware Browser
- RDesktop - remote desktop howto
- Interview With Kris Moore, PC-BSD Lead Developer
-
▼
August
(1065)
Sunday, August 24, 2008
HowTo: Rename multiple files recursively
Posted by VeRTiTO at 12:04 AM
Labels: Linux News
Subscribe to:
Post Comments (Atom)
ILoveTux - howtos and news | About | Contact | TOS | Policy
0 comments:
Post a Comment