Re: batch creation of symlinks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Emiliano Grilli wrote:
sabato, 08 luglio 2006 alle 22:15:23, Hans ha scritto:
Hello everyone,

Maybe not entirely related to music, so forgive me for that. I have been busy with the following problem for sometime now and I can't seem to figure it out.

I want to batch create symlinks in the main directory, of all the files in subdirectories. E.g.

$ls
dir1
dir2
dir3
file1.mp3 -> .dir1/file1.mp3
file2.mp3 -> .dir1/file2.mp3
file3.mp3 -> .dir2/file3.mp3
file4.mp3 -> .dir2/file4.mp3
file5.mp3 -> .dir3/file5.mp3
file6.mp3 -> .dir3/file6.mp3

I tried various shell thingies like:

for i in *.mp3; do ln -s --target-directory=../ $i $i; done

in the subdir, or

for i in ./dir1/*.mp3; do ln -s $i $i;done

This one works for me:

for i in `ls dir1/*.mp3`; do ln -s $i `basename $i`; done

this shell script should also do the job:

#!/bin/bash
find -name \*.mp3 | while read name; do
name="`echo "$name"|sed 's/^\.\///'`"
if ! echo $name|grep "/"> /dev/null; then
 continue
fi
ln -s "$name" "` basename "$name"`"
done

with various variations, but it seems impossible to do it this way. What is the right way to go about this? I know very little Python and some bash scripting. I want to figure the solution out myself, so any suggestions/hints related to Python/bash are more than welcome.

Cheers,

Hans

HTH

Ciao


[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux