Ich versuche, ein bestimmtes Verzeichnis in einem Pfad zu finden und das Verzeichnis mit find in einen anderen Pfad zu verschieben.
Das Quellverzeichnis sieht wie folgt aus:
/Dir1/country1/month1/date1,date2,date3
/Dir1/country2/month1/date1,date2,date3
...
.
.
/Dir1/country10/month1/date1,date2,date3
Ich versuche, date1-Verzeichnis zu finden und zum Ziel zu wechseln
/ Backup / source1 / dir1 /
Ich benutze folgenden Befehl
[root @ mytest Dir1] # find -name "date1" -exec mv {} / Backup / source1 / Dir1 / {} \;
und ich erhalte unter Fehler.
mv: Besitz für "/Backup/source1/Dir1/./country1/month1/date1/date1/date1_1.txt" konnte nicht beibehalten werden: Vorgang nicht zulässig
Nicht sicher, wie Duplikationen von date1 Directory in destination und "./" entfernt werden können, führt ebenfalls zu Problemen .
Beste Wünsche, KJ
Antworten:
Auf der Linux-Manpage heißt es:
Sie können also kein
mv
Verzeichnis verschieben. Sie können es jedoch zuerst kopieren und dann die alte Kopie löschen. Dieser Befehlspeichert den relativen Pfad zu dem Verzeichnis, an dem Sie interessiert sind, in einer praktischen Variablen. Jetzt können wir das Verzeichnis an der neuen Position machen,
vorausgesetzt, Sie haben die Berechtigung dazu: Tatsächlich handelt es sich bei der obigen Fehlermeldung um eine unzureichende Berechtigung zum Erstellen einer neuen Datei (es sollte sich um einen Ordner handeln, wurde jedoch aufgrund des obigen Fehlers zu einer Datei). Sind Sie sicher, dass das neue / Backup / dir1 Ihnen gehört? Sie sollten das überprüfen und beheben.
Jetzt können Sie alle Inhalte rekursiv in das neue Verzeichnis kopieren:
und zuletzt können Sie die alte Kopie löschen, wenn Sie:
und jetzt ist das Verzeichnis leer und kann gelöscht werden.
quelle
Anstatt move, ein stumpfes Tool, zu verwenden, sollten Sie rsync ausprobieren, mit dem Verzeichnisbäume im Archivierungsmodus verschoben werden können, wobei Berechtigungen und sowohl weiche als auch harte symbolische Links erhalten bleiben.
Wenn Sie
updatedb
als root eingeben, wird auch dielocate
Datenbank der Dateien aktualisiert, die sich in den verschiedenen Pfadstrukturen der installierten Pakete befinden. Binaries, Manpages und Source Trees. Die Suche mitwhereis
oderlocate
ist wesentlich schneller als die Suche auf der Festplatte.quelle