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