Normalerweise möchten Sie Shotwell einfach öffnen und in den Ordner ziehen.
Bei Bedarf können Sie die Shell eine Liste von CR2-Dateien erstellen lassen und Shotwell anweisen, nur diese Dateien zu öffnen. Gelegentlich ist dies möglicherweise das, was Sie möchten, aber in diesem Fall hat dies aufgrund von Shotwells Verhalten - unter anderen Umständen eine Funktion - nicht automatisch das getan, was Sie brauchten , um automatisch andere Bilddateien (aller Art) anzuzeigen, die sich in der befinden dieselben Ordner wie die Bilder, die Sie geöffnet haben.
Um sicherzustellen, dass Shotwell nur über die Bilder Bescheid weiß, an denen Sie interessiert sind, können Sie den Verzeichnisbaum an eine andere Stelle klonen .cr2
und nur Dateien und die Ordner kopieren , die sie enthalten, aber sonst nichts. Dies kann jedoch erheblichen zusätzlichen Platz beanspruchen. Ein anderer Ansatz besteht darin, eine Hierarchie symbolischer Links zu erstellen. Statt eines neuen Verzeichnisbaums mit Kopien Ihrer Originaldateien .cr2
haben Sie einen neuen Verzeichnisbaum mit Syminks zu diesen. Dies nimmt viel weniger Platz ein.
Diese Antwort deckt alle diese Ansätze ab.
Öffnen eines Ordner mit Bildern (einschließlich Unterordnern) in Shotwell
Shotwell selbst bietet Ihnen zwei Möglichkeiten, um einen ganzen Verzeichnisbaum von Fotos zu öffnen. Wenn diese für Sie funktionieren, müssen Sie in der Befehlszeile nichts Kluges tun oder sie überhaupt verwenden. Wenn nicht, können Sie dies in Verbindung mit einer anderen Technik tun. (Wenn Sie beispielsweise ein neues Verzeichnis mit Symlinks oder Kopien Ihrer .cr2
Dateien erstellen, können Sie es auf eine dieser Arten öffnen.)
Weg 1: Öffnen Sie einfach den gesamten Ordner in Shotwell.
Klicken Sie in Shotwell im Menü Datei auf Aus Ordner importieren . Wählen Sie dann den Ordner aus, aus dem Sie Bilder importieren möchten. Dies ist nicht auf .cr2
Dateien beschränkt. Wenn Sie jedoch Dateien aus mehreren Unterordnern öffnen, die .cr2
Bilder enthalten , die mit einer Digitalkamera erstellt wurden, sind dies höchstwahrscheinlich die einzigen vorhandenen Dateien.
Weitere Informationen finden Sie in Jakobs Antwort auf Alle Bilder rekursiv anzeigen (einschließlich aller Unterordner) .
Weg 2: Ziehen Sie den Ordner in Shotwell.
In den meisten Desktop-Umgebungen und Dateibrowsern können Sie Shotwell auch öffnen und den Ordner mit Ihren Bildern in das Shotwell-Fenster ziehen. Wie beim Importieren aus dem Ordner empfiehlt Shotwell, Fotos zu öffnen.
Wenn Sie aus einem Dateibrowserfenster oder Ihrem Desktop in Shotwell ziehen, können Sie in eine bestimmte Bibliothek ziehen. Oder wenn Sie nicht mehrere Bibliotheken eingerichtet haben, können Sie einfach überall hin ziehen und es funktioniert. (Sie müssen nicht einmal in den linken Bereich ziehen.)
Diese Methode ist sehr praktisch und genauso leistungsfähig wie die manuelle Auswahl des Ordners (mit Datei > Aus Ordner importieren , wie oben beschrieben). Wenn Sie Dateien oder Ordner mit einer dieser Methoden öffnen, bietet Shotwell Ihnen die Möglichkeit, die Fotos zu öffnen, ohne sie in die Bibliothek zu kopieren.
Klicken Sie zum Importieren ohne Kopieren auf An Ort und Stelle importieren anstelle von Fotos kopieren .
Starten von Shotwell mit einer Liste von Bilddateinamen
Wenn Sie dies aus irgendeinem Grund tun möchten oder müssen, indem Sie einen Befehl im Terminal ausführen, können Sie den shotwell
Befehl ausführen und den Dateinamen jedes Bildes als Argument an ihn übergeben. Globstar macht es einfach:
shopt -s globstar
shotwell **/*.cr2
Dadurch werden die .cr2
Dateien geöffnet, die sich an einer beliebigen Stelle im aktuellen Verzeichnis befinden. Es unterscheidet sich vom Ausführen von Shotwell und dem anschließenden Ziehen des Ordners darin, dass Shotwell nur versucht, die Dateien zu importieren, deren Namen Sie ihm geben. Da Shotwell jedoch häufig andere Bilddateien aus denselben Ordnern anzeigt wie die Dateien, die Sie öffnen sollen, ist dies möglicherweise nicht für Ihre Anforderungen geeignet. ( Weitere Informationen, die Sie zu Ihrem Problem gegeben haben, deuten darauf hin, dass dies nicht der Fall ist . Eine Alternative finden Sie weiter unten.)
Dies schließt keine Dateien oder Unterordner ein, deren Namen mit beginnen.
. Wenn Sie jedoch CR2-Dateien haben, deren Namen mit einem Punkt beginnen, möchten Sie sie die meiste Zeit wahrscheinlich sowieso nicht in Shotwell öffnen. Sofern Sie Ihre Dateien oder Ordner nicht absichtlich auf diese Weise benannt haben, ist eine Punktdatei mit einer Dateinamenerweiterung für Bilder oder Dokumente eher eine Metadatendatei als ein tatsächliches Bild oder Dokument. Beispielsweise fügt macOS beim Zugriff auf externe Medien (einschließlich Flash-Laufwerke und Digitalkameras) häufig solche Dateien hinzu (z. B. ._kittens.cr2
für ein tatsächliches Bild kittens.cr2
).
Wenn Sie auch Dateien suchen.
.
möchten , deren Namen mit beginnen oder die sich in Ordnern befinden, deren Namen mit beginnen , aktivieren Sie auch dotglob. Sie können dies mit shopt -s dotglob
oder durch Übergeben von beiden globstar
und dotglob
an das shopt
eingebaute tun:
shopt -s globstar dotglob
Bei Globs wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden. Aber möchten Sie vielleicht Dateinamen zwischen Groß- und unsensibel entsprechen , um offene Dateien mit der Endung .cr2
, .Cr2
, .cR2
, und .CR2
. Um das zu tun, entweder:
Aktivieren nocaseglob , indem Sie shopt -s
mit nocaseglob
, entweder allein oder mit anderen Shell - Optionen. Zum Beispiel, um shotwell
alle .cr2
Dateien .
auszuführen, ohne .
Berücksichtigung der Groß- und Kleinschreibung zu suchen und -Dateien und Dateien in -Verzeichnissen einzuschließen:
shopt -s globstar dotglob nocaseglob
shotwell **/*.cr2
Oder verwenden Sie .[cC][rR]2
statt .cr2
in Ihrem Glob-Muster. Dies bewirkt beispielsweise dasselbe wie oben:
shopt -s globstar dotglob
shotwell **/*.[cC][rR]2
Beachten Sie, dass die Groß- und Kleinschreibung völlig unabhängig davon ist, ob .
Dateien und Ordner übereinstimmen oder nicht . Sie können dotglob
aus den obigen Beispielen entfernen, und es kann immer noch die Groß- und Kleinschreibung nicht berücksichtigt werden.
Um ein Verzeichnis anzugeben, anstatt nur das aktuelle Verzeichnis zu verwenden, setzen Sie seinen Namen und ein /
vor den **/*.cr2
Glob. Wenn Sie beispielsweise den shotwell
obigen Befehl durch diesen ersetzen, werden alle .cr2
Dateien im Pictures
Unterverzeichnis Ihres Home-Verzeichnisses geöffnet :
shotwell ~/Pictures/**/*.cr2
Anders als beim ersten Befehl, der Ihr aktuelles Verzeichnis verwendet, werden Sie Shotwell unabhängig davon, wo Sie diesen Befehl ausführen, anweisen, dieselben Dateien zu öffnen.
Testen
Wenn Sie das Terminal wirklich dafür verwenden müssen, dann schätze ich, dass es Teil von etwas Komplexerem sein kann. Wenn Sie möchten, können Sie solche Befehle testen , bevor sie tatsächlich ausgeführt wird durch den Ersatz shotwell
mit printf '%s\n'
. Anstatt die Dateinamen an Shotwell zu übergeben, werden sie pro Zeile aufgelistet. Zum Beispiel auf meinem Computer:
ek@Io:~$ printf '%s\n' ~/tmp/**/*.cr2
/home/ek/tmp/another image.cr2
/home/ek/tmp/image.cr2
/home/ek/tmp/some folder/image3.cr2
Globstar und andere Shell-Optionen deaktivieren
Die Globstar-Shell-Option ist aktiviert, wie es der shopt -s globstar
Befehl (oben) getan hat. Wenn es bereits aktiviert ist, benötigen Sie nicht mehrere Befehle. Und Sie müssen globstar nur einmal pro Shell-Instanz festlegen.
Sie können globstar wieder ausschalten, indem Sie Folgendes ausführen:
shopt -u globstar
Und Sie können überprüfen, ob globstar ein- oder ausgeschaltet ist, indem Sie Folgendes ausführen:
shopt globstar
Wenn Sie globstar in einem Skript verwenden, sollten Sie in Betracht ziehen, es wieder zu deaktivieren, wenn möglicherweise Code in demselben Skript enthalten ist, das nicht für globstar geschrieben wurde. Zum Beispiel ist das Schreiben, **
wenn Sie meinen, *
normalerweise kein Problem, wenn globstar deaktiviert ist. Bei aktiviertem globstar kann es jedoch zu ernsthaften Problemen kommen, wenn ein Befehl weit mehr Dateien betrifft, als beabsichtigt.
Wenn Sie Dotglob oder Nocaseglob verwendet haben und diese ebenfalls deaktivieren möchten, können Sie dies auch mit shopt -u dotglob
bzw. tun shopt -u nocaseglob
. Sie können auch mehrere Shell-Optionen übergeben, shopt -u
um sie gleichzeitig zu deaktivieren. Zum Beispiel zum Ausschalten globstar,
dotglob
und nocaseglob
:
shopt -u globstar dotglob nocaseglob
Im Vergleich zu Globstar gibt es weniger schwerwiegende Fehler, die Sie möglicherweise machen, weil Sie vergessen haben, dass Sie Dotglob oder Nocaseglob aktiviert haben. Andere Personen (einschließlich Personen, die Sie auf Websites wie Ask Ubuntu konsultieren) gehen jedoch normalerweise davon aus, dass dotglob und nocaseglob deaktiviert sind, wenn sie Befehle zur Verwendung vorschlagen, sofern Sie ihnen nichts anderes mitteilen.
Weitere Informationen zu diesen Glob-bezogenen Shell-Optionen (und auch zu Globs im Allgemeinen ) finden Sie im Bash-Referenzhandbuch . Sie werden alle hauptsächlich in 4.3.2 The Shopt Builtin behandelt . Für globstar siehe auch 3.5.8.1 Pattern Matching . Für Dotglob siehe auch 3.5.8 Dateinamenerweiterung .
Erstellen eines neuen Verzeichnisbaums
Da Sie in Ihrem Fall Shotwell wirklich brauchen, um nur .cr2
Dateien anzuzeigen, haben Sie Nicht- .cr2
Dateien in denselben Ordnern mit .cr2
Dateien, und das Durchsuchen von Bildern in Shotwell bietet diese Dateien automatisch auch an . Es sieht so aus, als müssten Sie einen Ordner haben, der enthält keine anderen Bilddateien als die .cr2
Dateien, die Sie öffnen möchten.
Die Dateien bewegen, wie Sie vorgeschlagen haben , ist ein Ansatz, aber ich empfehle stattdessen entweder das Kopieren der Dateien oder besser machen symbolische Links zu den Dateien (siehe auch FOLDOC ), denn:
- Wenn Sie die Dateien geräteübergreifend verschieben, müssen Sie sie trotzdem kopieren. In diesem Fall ist das Verschieben nicht schneller.
- Wenn Sie über ausreichend Speicherplatz verfügen, ist es häufig eine gute Idee, einen unveränderten Ordner mit allem, mit dem Sie begonnen haben, aufzubewahren, bis Sie zufrieden sind, dass das, was Sie getan haben, Ihren Anforderungen entspricht. Offensichtlich ist dies nicht immer anwendbar oder praktisch. In Ihrem Fall sind diese Dateien jedoch das Ergebnis einer Datenwiederherstellungsoperation. Es kann nützlich sein, eine leicht zu lesende Aufzeichnung darüber zu führen, was genau von wo wiederhergestellt wurde.
- Wenn Sie symbolische Links erstellen, ist der zusätzliche Speicherplatz äußerst gering . (Wenn der Zieldatenträger jedoch vollständig gefüllt ist, müssen Sie dennoch Speicherplatz freigeben oder einen anderen Zieldatenträger verwenden, um Symlinks zu erstellen.)
Sie müssen noch eine weitere Entscheidung treffen. Erstellen Sie alle neuen Einträge (ob Kopien oder Symlinks) im selben Verzeichnis, wodurch die Dateihierarchie verringert wird? Oder erstellen Sie am Ziel Verzeichnisse, die jedem der Verzeichnisse an der Quelle entsprechen und mindestens eine .cr2
Datei enthalten?
Durch Reduzieren der Dateihierarchie können Sie alle Dateien gleichzeitig auf einfache Weise anzeigen. Insbesondere ist es einfach, die Namen und Größen der Dateien auf einmal anzuzeigen und eine beliebige Kombination der Dateien in einem grafischen Dateibrowser auszuwählen.
Es gehen jedoch auch Informationen darüber verloren, in welchen Ordnern sie sich befanden, was möglicherweise hilfreich ist (obwohl Sie zum ursprünglichen Ordner zurückkehren und dort nach ihnen suchen können, wenn Sie die Dateien nicht verschieben).
Das größere Problem beim Reduzieren der Dateihierarchie ist jedoch, was passiert, wenn Sie zwei oder mehr Dateien mit demselben Namen an verschiedenen Stellen haben . Wenn Sie die Dateihierarchie reduzieren, werden je nach Vorgehensweise entweder alle bis auf die erste nicht kopiert (oder verknüpft) und Sie erhalten einen Fehler oder eine Warnung, oder alle bis auf die letzte Kopie (oder den letzten Link) werden überschrieben .
Dies ist ein weiterer Grund, warum ich empfehle, Symlinks zu kopieren oder zu erstellen, anstatt Dateien zu verschieben. Wenn Sie mehrere Dateien "erfolgreich" in dieselbe Datei verschieben, haben Sie alle bis auf die letzte verloren!
Aufgrund der Nachteile, alles in ein einziges Verzeichnis ohne Unterverzeichnisse zu reduzieren, erstellen die hier verwendeten Ansätze einen neuen Verzeichnisbaum am Ziel.
Weg 1: Kopieren
Ich zeige dies zuerst, weil es etwas einfacher ist, aber ich schlage vor, dass Sie stattdessen symbolische Links erstellen ("Weg 2"), insbesondere wenn das Ziellaufwerk möglicherweise nicht genügend Speicherplatz für alle Dateien hat. "Weg 2", der etwas komplizierter ist, ist viel detaillierter, da es anscheinend weniger Ressourcen für die Verwendung dieser Technik gibt. Ich gehe davon aus, dass die meisten Menschen in dieser Situation dies bevorzugen und Informationen, die für beide Methoden gelten - Grundlegende Ratschläge zum Entkommen von Räumen in Pfaden - werden dort und nicht hier gegeben.
Wenn Sie einen Verzeichnisbaum kopieren und den Kopiervorgang anpassen müssen, sollten Sie normalerweise rsync
anstelle von verwenden cp
. Dies ist einer dieser Fälle.
Durch Ersetzen src
durch den Pfad zum Verzeichnis der obersten Ebene, das alle Ihre CR2-Dateien enthält, und Ersetzen dest
durch den Namen des Verzeichnisses, das Sie erstellen möchten und das eine Hierarchie symbolischer Links zu den CR2-Dateien enthält, führen Sie Folgendes aus:
rsync -rl --prune-empty-dirs --include='*/' --include='*.cr2' --exclude='*' src/ dest
Vergessen Sie nicht /
den Nachnamen des Quellverzeichnisses, es sei denn, Sie möchten, dass ein zusätzliches Verzeichnis der obersten Ebene darin erstellt wirddest
. Das heißt, wenn Sie das Trailing weglassen /
, rsync
wird das Zielverzeichnis für Sie im Inneren erstellt dest
. Angenommen, es src
handelt sich um einen relativen Pfad, der no enthält /
. Dann:
- Mit
src/
in Ihrem rsync
Befehl erhalten Sie einen Symlink dest/foo/bar.cr2
für die Datei src/foo/bar.cr2
.
- Mit
src
in Ihrem rsync
Befehl erhalten Sie einen Symlink für die Datei .dest/src/foo/bar.cr2
src/foo/bar.cr2
Da es für das Verzeichnis der obersten Ebene, in dem Symlinks platziert werden, verwirrend sein kann, denselben Namen wie das Verzeichnis der obersten Ebene zu haben, das die .cr2
Dateien enthält, auf die die Symlinks verweisen, empfehle ich, das /
am Ende des Ziels anzugeben Verzeichnisname in Ihrem rsync
Befehl. (Geben Sie für das Quellverzeichnis ein Verzeichnis an, das leer ist, nicht existiert oder anderweitig für diesen Zweck vorgesehen ist. Andernfalls werden Sie einen anderen Ordner überladen.)
Wie ist in der Regel der Fall , wenn Sie den Namen einer Datei oder ein Verzeichnis zu einem Kommandozeilen - Programm oder Skript übergeben, speziell behandelt , wenn Ihre Ziel- oder Quellverzeichnispfade enthalten keine Leerzeichen (oder Zeichen , die von der Schale, wie \
, $
, '
und verschiedenen andere Interpunktion), dann müssen Sie sie zitieren . Ich habe ausführlich beschrieben, wie dies für den häufigsten Fall von Leerzeichen in "Weg 2" getan wird - der Ratschlag zum Zitieren in diesem Abschnitt gilt auch hier. Wenn Sie sich jedoch nicht sicher sind, wie Sie den Namen eines Ordners angeben sollen, können Sie Ubuntu dies für Sie tun lassen, indem Sie den Ordner einfach in das Temrminal ziehen. Der vollständige Pfad wird mit korrektem Anführungszeichen eingefügt .
Nachdem Sie nur die .cr2
Dateien und die Ordner kopiert haben , die sie enthalten, können Sie den Zielordner in Shotwell öffnen. (Siehe "Öffnen eines Ordners mit Bildern (einschließlich Unterordnern) in Shotwell" oben.) Bevor Sie jedoch ausführenrsync
, sollten Sie entscheiden, ob Sie Einträge überspringen möchten, die mit beginnen, .
und ob Sie Einträge mit Suffixen für Groß- und Kleinschreibung einschließen möchten. In diesem Fall müssen Sie einen etwas anderen rsync
Befehl ausführen .
Anpassen der Handhabung von gepunkteten Einträgen und der Groß- und Kleinschreibung
Möglicherweise möchten Sie einen anderen rsync
Befehl verwenden, um zu ändern, ob Dateien und Verzeichnisse, die mit einem Punkt beginnen, übersprungen werden und ob bei der Übereinstimmung mit dem Suffix die Groß- und Kleinschreibung berücksichtigt werden soll .cr2
.
Der obige Befehl enthält Verzeichnisse und Dateien, deren Namen mit beginnen .
. Um solche Dateien und Verzeichnisse auszuschließen, stellen Sie sie --exclude='.*/' --exclude='.*'
vor alle anderen --include
s und --exclude
s. Verwenden Sie rsync
stattdessen diesen Befehl (mit den entsprechenden Ersetzungen für src
und dest
natürlich):
rsync -rl --prune-empty-dirs --exclude='.*/' --exclude='.*' --include='*/' --include='*.cr2' --exclude='*' src/ dest
Die rsync
Befehle bisher gezeigt haben , case-sensitive gewesen und nicht das Kopieren von Dateien , dass Ende in .CR2
, .Cr2
oder .cR2
nicht .cr2
. Wenn Sie möchten, dass solche Dateien kopiert werden, müssen Sie dies berücksichtigen, indem Sie das --include
Muster *.[cC][rR]2
anstelle von verwenden *.cr2
.
Dieser dritte Befehl ist Groß- und Kleinschreibung und (wie der erste Befehl) nicht nicht überspringt Dateien und Verzeichnisse , deren Namen beginnen mit .
:
rsync -rl --prune-empty-dirs --include='*/' --include='*.[cC][rR]2' --exclude='*' src/ dest
Wenn Sie Dateien kopieren rsync
und sich nicht sicher sind, welchen dieser Befehle Sie möchten, empfehle ich die Verwendung dieses Befehls, wenn Sie sicherstellen möchten, dass Sie nichts verpassen. Beachten Sie jedoch, dass Punktedateien möglicherweise Metadaten enthalten und Punktedateien, die als Bilder bezeichnet werden, möglicherweise nicht wirklich Bilder sind. Siehe die Diskussionen zu Punktedateien im Abschnitt "Starten von Shotwell mit einer Liste von Bilddateinamen" oben und zu Punktedateien und Groß- und Kleinschreibung in "Weg 2" weiter unten.
Dieser vierte Befehl ist Groß- und Kleinschreibung und (wie der zweite Befehl) hat zum Überspringen von Dateien und Verzeichnisse , deren Namen beginnen mit .
:
rsync -rl --prune-empty-dirs --exclude='.*/' --exclude='.*' --include='*/' --include='*.[cC][rR]2' --exclude='*' src/ dest
Weg 2: Symbolische Verknüpfungen erstellen
Ich empfehle Ihnen, dies zu tun, obwohl Weg 1 in Ordnung ist, wenn Sie genügend Speicherplatz auf dem Ziellaufwerk haben. Sie müssen Way 1 nicht lesen, um dies zu verwenden.
Die hier vorgestellte Methode erstellt eine Liste von .cr2
Dateien und durchläuft die Liste, erstellt nach Bedarf Zielverzeichnisse und füllt sie mit symbolischen Links zu jeder .cr2
Datei.
Dies ist gerade so kompliziert, dass ich vorschlage, es in ein Skript einzufügen, anstatt es nur interaktiv einzugeben. Sie können das Skript beliebig platzieren, aber der Einfachheit halber zeige ich Ihnen, wie Sie es mit dem Skript tun, das sich direkt in Ihrem Home-Ordner befindet.
Schreiben Sie das Skript (oder fügen Sie es ein).
Erstellen Sie eine Textdatei make-symlinks
in Ihrem Home-Ordner. Es ist keine Dateierweiterung erforderlich.
Sie können dies mit jedem Texteditor wie Vim, Nano, Gedit oder Leafpad tun. Verwenden Sie jedoch kein Textverarbeitungsprogramm wie LibreOffice Writer. (Sie können dies sogar tun, indem Sie ausführen cat > ~/make-symlinks
, den Inhalt der Datei einfügen und Ctrl+ Din einer neuen Zeile drücken , wenn Sie möchten.)
Wenn Sie dem Skript einen anderen Namen als geben make-symlinks
, stellen Sie sicher, dass Sie diesen Namen verwenden, wenn Sie Befehle ausführen, die das Skript später verwenden.
#!/bin/bash
shopt -s globstar dotglob nocaseglob
for f in **/*.cr2; do
mkdir -p "$1/$(dirname "$f")"
ln -s "$PWD/$f" "$1/$f"
done
Fügen Sie das in die Datei ein und speichern Sie die Datei. Dieses Skript verwendet globstar, eine Bash-Funktion, die oben unter "Starten von Shotwell mit einer Liste von Bilddateinamen" erläutert wurde .
Sie können den Umgang mit gepunkteten Einträgen und die Groß- und Kleinschreibung ändern.
Abhängig von Ihren Anforderungen möchten Sie möglicherweise einige Änderungen vornehmen:
Wenn Sie keine .cr2
Dateien einschließen möchten, deren Namen mit beginnen .
oder die sich in Verzeichnissen befinden, deren Namen mit beginnen .
, entfernen Sie sie dotglob
aus der shopt
Zeile.
Dateien und Verzeichnisse, deren Name mit beginnt, .
werden häufig für Metadaten verwendet (siehe Abschnitt "Starten von Shotwell mit einer Liste von Bilddateinamen" oben). Auf der anderen Seite sollten Sie behalten, wenn Sie sicherstellen möchten, dass Sie alles haben, oder wenn etwas Unerklärliches fehlt, von dem Sie ziemlich sicher sind, dass es vorhanden ist dotglob
.
Wenn Sie nur das Ende in genau Dateien enthalten sein sollen , .cr2
aber nicht Fall Varianten ( .CR2
, .Cr2
, und .cR2
), dann sollten Sie entfernen nocaseglob
. Da Ihre Situation eine Datenwiederherstellung beinhaltet und Shotwell Ihnen keine der Dateien anzeigt, die Sie beim Öffnen des Verzeichnisses symbolischer Links verpasst haben - das ist schließlich der Punkt dieser Methode -, möchten Sie wahrscheinlich behalten nocaseglob
.
Mach es ausführbar.
Führen Sie diesen Befehl aus, um Ihre ausführbare Skriptdatei zu markieren:
chmod +x ~/make-symlinks
Führen Sie es an der Quelle aus und übergeben Sie das Ziel als Argument.
Wechseln Sie dann in das Quellverzeichnis, dh in den Ordner der obersten Ebene, der die Bilder enthält. Wenn sie sich beispielsweise im Pictures
Unterverzeichnis Ihres Home-Verzeichnisses befinden, würden Sie Folgendes ausführen:
cd ~/Pictures
Hier führen Sie das Skript aus. Übergeben Sie das Zielverzeichnis als Befehlszeilenargument an das Skript.
Wenn Sie beispielsweise möchten cr2s
, dass auf Ihrem Desktop ein Verzeichnis mit den symbolischen Links erstellt wird, führen Sie Folgendes aus:
~/make-symlinks ~/Desktop/cr2s
Oder wenn Sie dieses Verzeichnis nur direkt in Ihrem Home-Ordner haben möchten:
~/make-symlinks ~/cr2s
Oder wenn Sie ein Laufwerk gemountet haben /media/you/MyDrive
und einen Ordner darauf erstellen möchten, der links
die symbolischen Links enthält:
~/make-symlinks /media/you/MyDrive/links
Wenn das Laufwerk jedoch /media/you/My Drive
(mit einem Leerzeichen) ist, müssen Sie ein Anführungszeichen verwenden. Jedes dieser Werke (verwenden Sie nur eines, führen Sie nicht alle aus):
~/make-symlinks '/media/you/My Drive/links'
~/make-symlinks /media/you/'My Drive'/links
~/make-symlinks /media/you/My\ Drive/links
Aber wenn Sie ~
für Ihr Home-Verzeichnis verwenden, zitieren Sie das nicht:
~/make-symlinks ~/'Two Words' # good
~/make-symlinks ~/Two\ Words # good
~/make-symlinks '~/Two Words' # BAD, because ~ doesn't get expanded
make-symlinks
Erstellt das Zielverzeichnis für Sie, falls es noch nicht vorhanden ist, genauso wie es darin Unterverzeichnisse erstellt. Es funktioniert jedoch weiterhin, wenn das Ziel bereits vorhanden ist.
Sie können es sogar mehrmals ausführen und dasselbe Zielverzeichnis übergeben (z. B. wenn Sie es mit Ctrl+ unterbrochen haben C). Es werden jedoch failed to create symbolic link
Fehler für die bereits vorhandenen Symlinks angezeigt, was verwirrend sein kann.
Sie möchten wahrscheinlich nicht den Namen eines Verzeichnisses übergeben, das bereits vorhanden ist und nicht verwandte Dateien (wie Ihr Home-Verzeichnis) enthält make-symlinks
. Wenn Sie dies tun, können Sie erwarten, dass eine ganze Reihe von Symlinks und Unterordnern darin erstellt werden. Sie möchten wahrscheinlich ein neues Verzeichnis verwenden - oder eines, das noch nicht existiert - für make-symlinks
.
Importieren Sie den neu erstellten Symlink-Baum in Shotwell.
make-symlinks
Importieren Sie nach dem Ausführen einfach das Verzeichnis, das Sie an Shotwell übergeben haben, mit einer der im ersten Teil dieser Antwort angegebenen Methoden ( "Öffnen eines Ordner mit Bildern (einschließlich Unterordnern) in Shotwell" ). Sie können beispielsweise Shotwell öffnen und den Ordner hineinziehen.
Da alle Einträge im Ordner entweder symbolische Links zu .cr2
Dateien oder Verzeichnisse sind, die sie enthalten, ohne andere Dateitypen, sollte Shotwell keine der anderen Dateien sehen.