Linux Help
guides forums blogs
Home Desktops Distributions ISO Images Logos Newbies Reviews Software Support & Resources Linuxhelp Wiki

Welcome Guest ( Log In | Register )

Advanced DNS Management
New ZoneEdit. New Managment.


Sign Up Now
> Moving Groups Of Files From Upper To Low
post Jul 15 2003, 09:01 AM
Post #1

Its GNU/

Group: Admin
Posts: 1,254
Joined: 21-September 02
From: St John's, Newfoundland, Canada
Member No.: 3

Often times when you transfer files from Windows to Linux, they end up with all Capital letters. While generally, this isn't much of a problem, sometimes this includes large directories and Linux will not see "FILENAME.EXE" the same as "filename.exe". The solution is to issue the following perl command to rename everything in a directory from upper to lower case:

perl -le 'rename $_, lc( $_ ) foreach <*>'

This "tip" is available through the random tip son the frontpage.

Corey Quilliam
(former) Administrator

Want to help out Check out our Linuxhelp Wiki and see if there are some articles you would like to submit!!

Ubuntu 8.04 64-bit - Work Laptop (HP-Compaq NC6400 Core2)
Kubuntu 8.04 64-bit - Desktop (HP m8120n QuadCore)
Ubuntu 6.04 - Server (I'm not upgrading this baby until support runs out in 2012) (Some old POS dell)
Go to the top of the page
+Quote Post
Start new topic
post Dec 10 2003, 06:41 AM
Post #2

Its GNU/

Group: Admin
Posts: 3,433
Joined: 25-July 03
From: Corpus Chrsiti, TX, USA
Member No.: 1,151

Ok ... here is the explaination:

PERL is magic laugh.gif
Actually, the perl -l is to run perl, -e switch allows you to execute the information inside the quotes with the perl interpretor ... it's like running a perl script that contains the information inside the quotes ... in this case the perl command that is executed is: rename $_, lc( $_ ) foreach <*>

$_ (in perl) is the topic ... which in generic terms means the currently selected item...if you want a more detailed explaination of topic, see this. In this code, the topic is going to be a filename.

lc() is a function in perl to convert text to lowercase ... in this example, it converts $_ (the filename) to lowercase.

rename x,y in perl will rename file x to the name y ... it is very similar to the command mv in bash (except there is a comma between filenames). In this case $_ (the original filename) is renamed to lc($_) the lowercase filename.

foreach defines a list of items to do sometime on ... in this case <*> will generate a list including all files in a directory...try this command to see a list of all the files in a directory: perl -le 'print $_ foreach <*>'

So, put it all together and perl -le 'rename $_, lc( $_ ) foreach <*>' will convert all filenames in a directory to thier lowercase equivalant.

I actually know a little bit about perl ... see my old website ... which I haven't updated since 1999 (i think) ... I don't even know the passwords to make changes to the site anymore....(WOW what a flashback!)

Johnny Hughes
Enterprise Alternatives: CentOS, WhiteBoxEL
Favorite Workstation Distros (in order): CentOS, Gentoo, Debian Sarge, Ubuntu, Mandrake, FedoraCore, Slackware, SUSE
Favorite Server Distros (in order): CentOS, WhiteBoxEL, Debian Sarge, Slackware, Mandrake, FedoraCore, Gentoo, SUSE
Go to the top of the page
+Quote Post

Posts in this topic

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:


RSS Lo-Fi Version Time is now: 23rd March 2018 - 05:52 PM