Ist es möglich, nur über die Befehlszeile etwas wie den Befehl cp
oder zu verwenden rsync
, um eine Festplatte zu durchsuchen und nur nach Bild-/Videodateien zu suchen? Und vielleicht beim Kopieren an einen anderen Ort die Ordnernamen/Pfade am neuen Ort beizubehalten?
Ich habe ein paar alte Festplatten und möchte Sicherungskopien der darauf gespeicherten Bilder und Videos erstellen. Diese sind jedoch bestenfalls über Tausende von Ordnern verstreut und ich würde es vorziehen, wenn der Computer, wenn möglich, den Großteil der Routinearbeit für mich erledigen würde. Allerdings lerne ich immer noch die Befehlszeile und ihre beeindruckenden Fähigkeiten kennen.
Antwort1
Sie können find
nach Dateien suchen, die Sie interessieren, beispielsweise:
find /mnt/hd1 -name \*.jpg
sucht nach JPG-Dateien (also nach Dateien mit der Erweiterung .jpg) im Verzeichnis /mnt/hd1. Wenn Sie diese Dateien einfach irgendwohin kopieren möchten, können Sie:
find /mnt/hd1 -name \*.jpg -exec cp {} /mnt/dest
Dadurch wird cp
der Befehl für jede Datei ausgeführt, die im Verzeichnis /mnt/dest gefunden werden kann.
Ich hoffe es hilft :)
Antwort2
Eine weitere Möglichkeit, wenn Sie es nicht in einem Skript automatisieren möchten, besteht darin, mit Ihrem Find-Befehl ein Bash-Skript zu erstellen. Führen Sie dann das Bash-Skript aus. Auf diese Weise können Sie auch den Ursprung der Datei feststellen.
Außerdem würde ich das Obige leicht ändern, falls Sie doppelte Dateinamen haben, falls Sie dies in Ihrer Umgebung vermuten. Sie benötigen eine Fehlerprüfung in Ihrem Skript.
Möchten Sie auch den Verzeichnispfad beibehalten?
d.h. wenn eine Datei hier ist
/quelle/a/b/c/d/e.jpg
Möchten Sie es kopieren nach
/ziel/a/b/c/d/e.jpg ?
oder
/ziel/e.jpg ?
Ein Beispiel könnte sein
find /source -type f -name "*.jpg" -print | awk '{"cp -p "$1" /backup/}' > copy.sh
Dies würde nur in ein Verzeichnis /backup kopieren
Um zu erhalten, könnten Sie
(cd /source; find . -type f -name "*.jpg" -print | awk '{"cp -p "$1" /backup/"$1}') > copy.sh
Aber dann möchten Sie zuerst alle Verzeichnisse erstellen
(cd /source; find . -type d -print | awk '{print "mkdir -p /backup/"$1}' > mkdir.sh
Der Vorteil dabei ist, dass Sie die Skripte auch in Augenschein nehmen und sicherstellen können, dass alles gut aussieht, bevor Sie die Befehle tatsächlich ausführen. Ich bin beim Ausführen des Befehls ziemlich oft gescheitert und hatte ... ähm ... unerwartete Ergebnisse :)
Darüber hinaus erhalten Sie durch das Skript auch eine Aufzeichnung Ihrer bevorstehenden Schritte.