Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
sh Skript: Links automatisieren ?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
linker.so
Gast





BeitragVerfasst am: 11. Sep 2004 10:03   Titel: sh Skript: Links automatisieren ?

Hallo,

ich habe folende Verzeichnisstruktur:

ALLE
ort1
ort2
ort3

Unterhalb von "ortx" befinden sich Bilder. Jetzt würde ich gerne per Skript von jedem Bild in "ortx" einen Softlink nach "ALLE" machen. Punkt ist, die Ordner "ortx" haben natürlich beliebige Namen.

find hat mich zum Wahnsinn getrieben, da ich "{}" nicht zerlegen kann.
 

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 11. Sep 2004 11:49   Titel:

Wenn unter den ortx-Verzeichnissen keine weiteren Unterverzsichnisse mehr sind, ist es einfach:
Code:
#!/bin/bash

cd ALLE
for DIR in ../ort* ; do
    ln -s $DIR/* .
done

ln legt dann für jede Datei in ort*/ einen Link im aktuellen Arbeitsverzeichnis an, welches ALLE ist.

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

linker.so
Gast





BeitragVerfasst am: 11. Sep 2004 12:20   Titel:

cd ALLE
find .. -type f -exec ln -s {} . \;

Ich bin ein Trottel. Ich hatte die find Syntax falsch und einen groben Denkfehler, was ln angeht. Deine Lösung übersieht, das "ort*" beliebige Namen haben kann, also z.B. hamburg, münchen, Kiel, Nürnberg

Natürlich Danke für Deine Hilfe
 

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 12. Sep 2004 12:55   Titel:

Nu je, wenn Du nur von ort1, ort2, ortx schreibst, dann kann man das schon so für bare Münze nehmen, oder? Deine Lösung funktioniert, ruft aber pro Datei ein ln-Kommando auf. Bei meiner Lösung wird pro Verzeichnis ein ln-Kommando ausgerufen; je nachdem, wieviele Dateien so in einem Verzeichnis liegen können, kann das schon einen echten Performance-Unterschied machen.

Code:
#!/bin/bash

cd ALLE
for DIR in $(find .. -type d | grep -v ALLE) ; do
    ln -s $DIR/* .
done


Da ist dann auch der Name der Verzeichnisse egal.

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy