shell script irasa

Fórumok

shell script irasa

Hozzászólások

Sziasztok

Szeretnek irni egy scriptet ami a kovetkezot csinalja: egy adott konyvtar osszes filejara csinal egy-egy szimlinket. Addig jutottam, hogy a konyvtar tartalmat kilistazom: ls -1, ezzel minden sorba 1 bejegyzes kerul, a linket a kovetkezokeppen csinalom: ln -s /konyvtar_neve_amire_mutatni_kell /file_neve. A problema az, hogy az lsbol nem tudom, hogy adjam at a bejegyzeseket az lnek

Udvozlettel Colos

[quote:863e775b12="colos"]Sziasztok

Szeretnek irni egy scriptet ami a kovetkezot csinalja: egy adott konyvtar osszes filejara csinal egy-egy szimlinket. Addig jutottam, hogy a konyvtar tartalmat kilistazom: ls -1, ezzel minden sorba 1 bejegyzes kerul, a linket a kovetkezokeppen csinalom: ln -s /konyvtar_neve_amire_mutatni_kell /file_neve. A problema az, hogy az lsbol nem tudom, hogy adjam at a bejegyzeseket az lnek

Udvozlettel Colos

[code:1:863e775b12]

for a in `ls -1`; do /bin/ln -s /forras/$a /ahova/$a; done

[/code:1:863e775b12]

a /forras/ nem kotelezo.

Edit:
100. post, juhuuu :twisted:

[quote:3fa4c63b36="ZsoL"]a /forras/ nem kotelezo.

hát azé' attól is függ hogy épp melyik az aktuális könyvtár...ne keverjük be szegényt mert a következő kérdés ez lenne ;)

[quote:1600a529f9="WoOh"][code:1:1600a529f9]

for a in `ls -1`; do /bin/ln -s /forras/$a /ahova/$a; done

[/code:1:1600a529f9]

itt szerintem az aktualis konyvtar az a ./
ergo, ebben a konyvtarban futtatja az ls-t.
Vagy rosszul gondolom?

Nem gondolom rosszul.:[code:1:5012ecc57d]zsol@omnius:~/symlink$ ls
cmclient.txt link tmp vicckiraly.pl wget-log
zsol@omnius:~/symlink$ for a in `ls -1`; do /bin/ln -s $a link/$a; done
zsol@omnius:~/symlink$ ls link/
cmclient.txt link tmp vicckiraly.pl wget-log
zsol@omnius:~/symlink$[/code:1:5012ecc57d]

[quote:a6949a5508="ZsoL"]Nem gondolom rosszul.:

igazad van de 'ls -1 /akarmi' esetben már nem, gondoltam esetleg át akarja majd írni a saját izlése meg a feladatra ezt a sort... ;)

az ls -1 helyett sokal elegánsabb a for in in * :wink:

[quote:86b3ebbf31="vmiklos"]az ls -1 helyett sokal elegánsabb a for in in * :wink:

Úgy érted 'for a in *'? :wink:

ezt a szőrszálhasogatást amit csinálunk...(velem együtt) ha fa lenne már gyufákat gyártanánk :)
látszik hogy hétfő van ;)

igen, csak én mindig i,j,kt használok ilyenkor :wink:

Hogy ti miken tudtok vitatkozni..

Mindenki tudja, hogy nez ki a script. Ne kavarjuk ossze a sok infoval.

legyen akkor "egysegesen", ha abbol a konyvtarbol adja ki, amibol a linkeket akarja csinalni

[code:1:0ab248accd]
for a in *; do ln -s $a /ahova/$a; done
[/code:1:0ab248accd]

thread off ;)

Minden valaszt koszonok, mindjart kiprobalom :D

A helyes megoldas:

for a in `ls -1 /forras`; do /bin/ln -s /forras/$a $a; done

igy a helyi konyvtarba rakja a forras konyvtar bejegyzeseire mutato linket

[code:1:a2dc2a4605]
find . -type f -exec ln -s {} $ahova/{} \;
[/code:1:a2dc2a4605]

[quote:312b3b5089="anr"][code:1:312b3b5089]
find . -type f -exec ln -s {} $ahova/{} \;
[/code:1:312b3b5089]

Profi