Re: [linux-audio-user] batch creation of symlinks

From: Thomas Ilnseher <illth@email-addr-hidden>
Date: Sun Jul 09 2006 - 00:15:23 EEST

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
>
Received on Sun Jul 9 04:15:06 2006

This archive was generated by hypermail 2.1.8 : Sun Jul 09 2006 - 04:15:06 EEST