Lokaler Ordner als virtuelles Laufwerk

S

Sharptype

Aktives Mitglied
Thread Starter
Dabei seit
23.05.2015
Beiträge
1.178
Reaktionspunkte
112
Hallo zusammen,

ich habe ein Programm, welches eine Datenbank generiert auf Basis von einem Root-Pfad den man eingestellt hat. Dieser Pfad soll immer gleich bleiben, jedoch möchte ich die Dateien in diesem Pfad austauschen können OHNE etwas an dem Programm ändern zu müssen. Aus Windows-Sicht bedeutet es (ist leichter zu erklären):

1. Bilder liegen z. B. auf "C:\Pics"
2. Ordner "Pics" in "C:\" wird auf Laufwerk "X:\Bilder" gemapped
3. Programm P1 starten und Pfad "X:\Bilder" einstellen, Datenbank wird aufgebaut mit Basis "X:\Bilder" (virtueller Pfad)
4. Update der Bilder von anderer Quelle (z. B. externe Festplatte) indem z. B. "E:\ExterneHD\Bilder" auf den virtuellen Pfad "X:\Bilder" gemappt wird.
5. Programm P1 bekommt somit keine Schwierigkeiten, nichts muss eingestellt oder korrigiert werden.

Ziel ist es, dass die Datenbankeinstellungen zu Pfaden etc. in Programm P1 unangetastet bleiben!

Hintergrund: Ich besitze verschiedene Quellen für eine Datenbank, aber eine gleiche Ordnerstruktur ab einer bestimmten Pfadtiefe, so dass die Dateien gefunden werden können, solange sie einen identischen (virtuellen) Pfad haben!

Wie kann ich das unter Mac OS umsetzen? :rolleyes:

Vielen Dank für eure Hilfe.
 
Symbolische Links sollten hier helfen, wenn ich die Problemstellung richtig verstanden habe.
 
Das ist halt die Frage...Wenn das vergleichbar ist mit einer Verknüpfung in Windows, dann reicht es nicht.
 
Vergleichbar mit einer Verknüpfung in Windows wäre der Alias. Ein Symbolic Link auf ein Verzeichnis ist für die Anwendung als normaler Pfad anzusprechen. Bei einem Alias geht das nicht.
 
Hallo, hab ich mir schon gedacht und gerade getestet. Mac OS löst den Link auf und verzweigt dann auch in der Datenbank von Programm P1 auf den tatsächlichen Link. Hilft mir also nicht weiter.

Gibt es keine Möglichkeit in Mac OS sowas wie ein virtuelles Laufwerk zu erstellen mit Inhalt von einem lokalen Ordner? Ein Link löst hier nicht das Problem, da er aufgelöst wird.
 
Der Windows Befehl heißt übrigens "subst". Das Äquivalent auf Mac OS suche ich.
 
Vielleicht mein Problem etwas detaillierter:

Ich nutze Lightroom und meine Bilder liegen auf dem MacBook. Ich erstelle also eine Library in LR z. B. von "User/Pictures/LR". Jetzt ist das MB irgendwann voll mit Bildern und ich muss die Bilder in das Archiv verschieben (externe Festplatte oder NAS). Anmerkung: LR hat eine schöne Eigenschaft, dass die Bilder, wenn sie physikalisch nicht mehr vorhanden sind, sprich verschoben wurden, trotzdem noch eine Vorschau in verringerter Auflösung anzeigt. Soweit so gut. Wenn ich jetzt ein Bild finde, welches ich bearbeiten möchte, dieses jedoch schon im Archiv ist (erkennbar an einem Ausrufungszeichen in LR, da lokale Datei nicht gefunden), dann schließe ich die externe Festplatte an. LR jedoch hat seine Datenbank auf "User/Pictures/LR" eingestellt und somit sucht er nicht auf der externen Festplatte trotz gleicher Ordnerstruktur (wenn die Orderstruktur gleich ist, dann findet LR die Bilder wieder). Hätte ich LR nun auf einen virtuellen Pfad gelegt (was ich ja derzeit versuche hinzubekommen), dann hätte ich die externe Festplatte mit dem Bilderarchiv und gleicher Ordnerstruktur wie die lokalen Bilder (nur eben mit dem gesamten Bilderarchiv) auf den gleichen virtuellen Pfad gemappt und schwubs....LR hätte nicht gemeckert gar nichts, alles funktioniert, da er keinen Unterschied vorfindet. So muss ich irgendwie in den Pfaden und verweisen rumfummeln, wenn ich denn mal ein Bild aus dem Archiv holen möchte! Ziemlich ärgerlich!

Und nein, ich hänge nicht beide Pfade rein. Dann stimmen die Metadaten in LR nicht mehr etc. etc. Evtl. habe ich sogar ein drittes oder viertes Medium....Ich benötige also eine saubere Ordnerstruktur, mit "austauschbarem" Medium OHNE dass ich Operationen und Tricks in dem betroffenen Programm durchführen muss.

Hoffe dafür gibt es eine Lösung :confused:
 
Du legst Dir lokal ein Verzeichnis User/Pictures/LR_lokal an. Darauf setzt Du einen symbolischen Link, etwa so: ln -s User/Pictures/LR_lokal User/Pictures/lr
Dann kann Deine Anwendung ganz normal mit dem Verzeichnis User/Pictures/lr arbeiten.
Schließt du jetzt Deine externe Platte an, entfernst du den Link mit unlink User/Pictures/lr und legst einen neuen Symlink an: ln -s ExternePlatte/LR_extern User/Pictures/lr und lässt Lightroom suchen.
 
Du legst Dir lokal ein Verzeichnis User/Pictures/LR_lokal an. Darauf setzt Du einen symbolischen Link, etwa so: ln -s User/Pictures/LR_lokal User/Pictures/lr
Dann kann Deine Anwendung ganz normal mit dem Verzeichnis User/Pictures/lr arbeiten.
Schließt du jetzt Deine externe Platte an, entfernst du den Link mit unlink User/Pictures/lr und legst einen neuen Symlink an: ln -s ExternePlatte/LR_extern User/Pictures/lr und lässt Lightroom suchen.
Ganz genau so hab ich mir das vorgestellt und so ist meine Theorie und genau so habe ich es auch - gleich schon nach dem Hinweis mit dem symbolischen Link - ausprobiert. Das Ding ist nur, dass LR bei Auswahl des symbolischen Links diesen Auflöst und in der Datenbank von LR direkt nach Auswahl dann "User/Pictures/LR_lokal" steht und nicht "User/Pictures/lr" :( LR scheint also diese Links zu erkennen und aufzulösen, was das ganze dann zum Scheitern verurteilt.
 
Ich habe das gerade nochmal ausprobiert. Es funktioniert wirklich nicht wie oben beschrieben. Werden die Bilder importiert (von dem symb. Link), dann löst LR den Link auf und verweist auf den tatsächlichen Pfad in der Datenbank und speichert sich diesen weg. Man kann jetzt nur den lokalen Pfad imitieren über einen symbolischen Link, allerdings muss man dann das lokale Bilderverzeichnis löschen oder umbenennen, ansonsten lässt sich der Link nicht erzeugen, da der Pfad bereits existiert. Das ganze funktioniert also eigentlich nur gut, wenn man mit dem gesamten Fotoordner bzw. Bilderverzeichnis von A nach B umziehen will, was ich aber nicht möchte. Es ist hier also wirklich schade, dass LR den symbolischen Link auflöst!

Hat jmd vielleicht noch eine Idee?

Die Sache ist eben einfach die....ich habe im Ordner A und Ordner B Bilder mit derselben Verzeichnisstruktur und A ist auf dem Macbook und B ist auf dem NAS. Beide sollen ein und dieselbe Datenbank in LR abbilden, wobei A nur weniger Bilder enthält als B und die Bilder von A irgendwann nach B verschoben werden.

Bin echt am verzweifeln...
 
Hi,

ich habs grad mal nachgestellt. Lightroom löst den Symlink nur beim Import auf.
Importierst Du ausschließlich vom lokalen Verzeichnis, wäre der Weg über Umbenennen und dann das externe Laufwerk mit dem Symlink zu versehen nicht aufwendiger, als mit verschiedenen Symlinks zu arbeiten. Bist Du mit der Arbeit am externen Laufwerk durch, unlinken und den lokalen Ordner wieder zurück umbenennen.
Nur Importieren darfst du vom externen Laufwerk dann niemals... klingt irgendwie nicht so wirklich praktikabel das Ganze. Sollte mir noch was einfallen, melde ich mich hier wieder ;)
 
Lightroom löst den Symlink nur beim Import auf.
Genau!

Importierst Du ausschließlich vom lokalen Verzeichnis, wäre der Weg über Umbenennen und dann das externe Laufwerk mit dem Symlink zu versehen nicht aufwendiger, als mit verschiedenen Symlinks zu arbeiten.
Joa das stimmt schon, so habe ich es ja jetzt auch herausgefunden. Zumindest funktioniert es.

Stimmt, wirklich praktikabel ist das Ganze nicht :klopfer:

Aber ich habe noch etwas anderes herausgefunden bzw. LR bietet mit dem Rechtsklick auf z. B. den Library-Root-Ordner die Möglichkeit den Speicherort umzuhängen. Das funktioniert auch, aber ändert eben auch die Datenbank. Da ich es nur temporär benötige - sprich wenn ich mal das gesamte Bilderarchiv anschließe - gefällt mir die Lösung natürlich nicht. Da ist mir das Umbenennen lieber und mit dem symb. Link, wie beschrieben. Wenn ich es über LR umhänge über den Rechtsklick, dann würde ich vorher die gesamte Bibliotheksdatei bzw. den Katalog duplizieren, um den danach einfach wiederherzustellen.

Ich danke dir aber schon mal Apfeleis für deine tollen Tips. Evtl. bekommen wir ja noch eine bessere Variante hin als:
1) Lokalen Ordner umbenennen, dann symb. Link auf den lokalen Ordner mit Quelle externem Laufwerk
2) "Fehlende Ordner suchen" oder "Speicherort für Ordner aktualisieren" nutzen in LR, allerdings mit Änderung der Datenbank (was eigentlich nicht gewünscht ist).

Bin gespannt!

PS: Ja, ich aktualisiere die Library bzw. den LR-Katalog immer nur über den lokalen Ordner. Dafür hab ich mir u. A. das ganze Macbook gekauft xD

Grüße und Danke :bike:
 
Was mir noch einfällt. Evtl. kann man sich für das Umbenennen und reinhängen des externen Laufwerks ja ein Script basteln? Hier kenn ich mich nur null aus und muss auch erstmal recherchieren. Das wäre aber dann sicher ganz okay. Starten dann über eine Verknüpfung und das ganze dann auch wieder, wenn die Festplatte oder das Laufwerk abgezogen wird.
 
Moin Apfeleis,

ich habe jetzt mal so als Laie (nicht lachen) zwei Command-Files programmiert, die man für die Lösung 1) benutzen kann. Verbesserungsvorschläge sind natürlich immer willkommen.

Einmal, wenn das Archiv angeschlossen wird:
Code:
#!/bin/bash

# ----------------------------------------------------------------
LOCAL_LR_PATH="/Users/YourUser/Pictures/LR"
EXTERNAL_LR_PATH="/Volumes/LRArchiv"
# ----------------------------------------------------------------

SUFFIX="temp"
LOCAL_LR_TMP_PATH=${LOCAL_LR_PATH}_${SUFFIX}

if [ -d $LOCAL_LR_TMP_PATH ] && [ -d $LOCAL_LR_PATH ]
then   
    echo "Lokaler Lightroom-Katalog wurde bereits auf das externe Laufwerk umgehangen. Keine Aktion erforderlich!" 
else
    if [ -d $LOCAL_LR_PATH ]
    then
        echo "Externes Bilderarchivlaufwerk wird nun eingehängt..."       
        mv "$LOCAL_LR_PATH" "$LOCAL_LR_TMP_PATH"
        ln -s "$EXTERNAL_LR_PATH" "$LOCAL_LR_PATH"
    else
        echo "Lokaler Katalog(Pfad) nicht gefunden."
    fi
fi

Und einmal, wenn das Archiv/externe Festplatte oder NAS abgehängt wird:

Code:
#!/bin/sh

# ----------------------------------------------------------------
LOCAL_LR_PATH="/Users/YourUser/Pictures/LR"
# ----------------------------------------------------------------

SUFFIX="temp"
LOCAL_LR_TMP_PATH=${LOCAL_LR_PATH}_${SUFFIX}

if [ -d $LOCAL_LR_TMP_PATH ] && [ -d $LOCAL_LR_PATH ]
then
    echo "Externes Bilderarchivlaufwerk wird nun deaktiviert..."
    unlink "$LOCAL_LR_PATH"
    mv "$LOCAL_LR_TMP_PATH" "$LOCAL_LR_PATH"
else
    echo "Lokaler Lightroom-Katalog wurde nicht umgehangen. Keine Aktion erforderlich!"
fi

:zeitung:
 
Zurück
Oben Unten