Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
|
11-10-2004, 09:48 AM
|
#1
|
Member
Registered: Nov 2002
Location: Central VA
Distribution: Ubuntu/Debian
Posts: 228
Rep:
|
Copy one file to multiple directories
I have a mp3 directory tree,
Code:
/mp3/Artist1
/mp3/Artisit2
...
/mp3/ArtistN
I am making it web browseable with the hellp of some PHP scripting. I need to copy a index.php file from /mp3/Artist1 to the subdirectory for every other artist (some 450+).
I know this has to be pretty easy to do. I just haven't been able to crack the nut.
Any thoughts?
|
|
|
11-10-2004, 10:04 AM
|
#2
|
Member
Registered: May 2004
Location: At Keyboard
Distribution: Mandrake 10.0, SuSE 9.0
Posts: 114
Rep:
|
Maybe you could place a symbolic link in each subdir that points to index.php.
try ln -s /path/to/index.php /path/to/desired_link. I have used this several times successfully with image galleries. This way when you want to change index.php, you don't have to recopy the file to each sub dir.
To be more clear, if index.php is in /mp3 try,
$ cd /mp3
$ for foo in $(ls);do ln -s /mp3/index.php /mp3/$foo;done
If their are other subdirs in /mp3 that you do not want to place a link in, you will have to replace for foo in $(ls) with something else that prints only the files you want. The command listed above will place a link to /mp3/index.php in each subdir of /mp3.
Last edited by meblost; 11-10-2004 at 10:26 AM.
|
|
|
11-10-2004, 10:10 AM
|
#3
|
Member
Registered: Nov 2002
Location: Central VA
Distribution: Ubuntu/Debian
Posts: 228
Original Poster
Rep:
|
I didn't think about using a symlink. That could work. Don't I have the same problem though? I have to create a symlink for each of the 450+ directories. I'm trying to automate that process via a piped command or small bash script.
|
|
|
11-10-2004, 10:26 AM
|
#4
|
Member
Registered: May 2004
Location: At Keyboard
Distribution: Mandrake 10.0, SuSE 9.0
Posts: 114
Rep:
|
Oops, you are too quick for me. Read my edited post above...
|
|
|
11-10-2004, 10:38 AM
|
#5
|
Member
Registered: May 2004
Location: UK
Distribution: Gentoo
Posts: 293
Rep:
|
You could try the following:-
Code:
for i in $(ls /mp3); do if [ -d $i ]; then ln -s /path/to/file/index.php $i/index.php; fi; done
|
|
|
11-10-2004, 10:40 AM
|
#6
|
Member
Registered: May 2004
Location: UK
Distribution: Gentoo
Posts: 293
Rep:
|
Oops, too quick for me too...
|
|
|
11-10-2004, 11:06 AM
|
#7
|
Member
Registered: Nov 2002
Location: Central VA
Distribution: Ubuntu/Debian
Posts: 228
Original Poster
Rep:
|
Well. It's a good start. Some of the artist/subdir names have spaces in them. The script chocks on them.
I know I have to escape the spaces somehow.
|
|
|
11-10-2004, 11:49 AM
|
#8
|
Member
Registered: Oct 2004
Distribution: Fedora 7, OpenSuse 10.2
Posts: 108
Rep:
|
Try putting quotes round the loop variable, ie "$i"
|
|
|
11-10-2004, 11:51 AM
|
#9
|
Member
Registered: May 2004
Location: UK
Distribution: Gentoo
Posts: 293
Rep:
|
This is a bit of a cludge, but it should work.
Code:
for i in $(ls /mp3 | tr " " "_"); do j=$(echo $i | tr "_" " "); if [ -d "$j" ]; then ln -s /path/to/index.php "$j"/index.php; fi; done
|
|
|
11-10-2004, 12:57 PM
|
#10
|
Member
Registered: Nov 2002
Location: Central VA
Distribution: Ubuntu/Debian
Posts: 228
Original Poster
Rep:
|
Ahh...
That did it.
Cheers mate.
Thanks all.
|
|
|
All times are GMT -5. The time now is 08:50 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|