Gibt es eine Möglichkeit, ein gesamtes Verzeichnis zu kopieren, aber nur die Ordner? Ich habe irgendwo in meinem Verzeichnis eine beschädigte Datei, die dazu führt, dass meine Festplatten ausfallen.
Anstatt die beschädigte Datei auf eine andere Festplatte zu kopieren, wollte ich nur die Ordner kopieren, da ich Skripts habe, die nach Hunderten von Ordnern suchen, und nicht alle manuell erstellen müssen.
Ich habe das CP-Handbuch durchsucht, konnte aber nichts sehen (ich habe es möglicherweise verpasst)
Angenommen, ich habe diese Struktur auf meiner ausgefallenen Festplatte:
dir1
files
dir2
files
files
dir4
dir3
files
Alles, was ich will, ist die Verzeichnisstruktur, überhaupt keine Dateien.
Also würde ich auf der neuen Festplatte landen:
dir1
dir2
dir4
dir3
Ich hoffe, jemand kennt ein paar Tricks!
rsync
die Verzeichnisstruktur zu kopieren UND die Berechtigungen und Attribute beizubehalten ] ( stackoverflow.com/a/9242883/52074 ). Bei Verwendung von plainmkdir -p
bleiben Berechtigungen und Attribute nicht erhalten .Antworten:
Wenn Sie ein Verzeichnisskelett spiegeln und keine Dateien kopieren möchten:
Was ist denn hier los:
-links 2
, um die tiefstmöglichen Verzeichnisse zu finden .mkdir -p
macht alle fehlenden Verzeichnisse auf dem Weg.Ich habe es eher so gemacht, als
find -type d -exec mkdir -p "/path/to/backup/{}" \;
weil es bei einer ganzen Menge vonmkdir
Anrufen nicht funktioniert . Das können wir mit einem kleinen Test schnell beweisen. Hier ist der Testbaum, gefolgt von dem, was ich ausgeführt habe, um die beiden Befehle zu vergleichen:Und das wird nur in einer echten Lösung mit Tausenden von Verzeichnissen besser.
quelle
find
wird das aktuelle Arbeitsverzeichnis als Ausgangspunkt verwendet. Wenn Sie einen anderen Pfad verwenden möchten, verwenden Sie die folgende Syntax:find /path/to/search/ -type.....
find -type d -exec mkdir -p "/media/jinglez/TVSeries/TV Series"/{}" \;
und alles sollte in Ordnung sein? Es scheint eine Weilefind -type d -links 2 -exec mkdir -p "/media/jinglez/TVSeries/TV Series/{}" \;
Mit Python One-Liner ganz einfach:
Als Skript könnte dies folgendermaßen umgeschrieben werden:
quelle