Verwenden des Befehls find mit rekursiver Kopie ohne -r oder eine while / for-Schleife

0

Ich habe folgendes Problem. Normalerweise würde man den Befehl find exec cp -r verwenden, um alles von einem Verzeichnis in ein anderes zu kopieren. In diesem Fall darf ich dies nicht tun oder eine while / for-Schleife für den find-Befehl verwenden.

Ich muss nur alles von einem Verzeichnis in ein anderes kopieren, mit der vollständigen Verzeichnisstruktur.

Linus Kleen
quelle
Warum brauchst du finddafür?
Roman Newaza
Weil mein Lehrer es mir gesagt hat, haha. Aber googeln bringt keine Ergebnisse.
Sie könnenrsync -r
Roman Newaza
Ich weiß, aber wir dürfen nicht etwas anderes verwenden als finden ...
Mit können Sie ls -RIhre Verzeichnisse rekursiv auflisten und das Ergebnis in eine Schleife leiten.
Roman Newaza

Antworten:

1

Sie können mit so etwas beginnen:

src=/home/user
dst=/to/dir
find -exec printf " echo {} | \
        sed 's|^$src|$dst|;s|/[^/]*$||' | \
        xargs -n1 -I@ mkdir -p @\n" \; | \
   sh

Dadurch wird die Verzeichnisstruktur unter dem Zielverzeichnis erstellt. Sie können printf viele Befehle hinzufügen.

perreal
quelle
1
Ich wünschte, die Leute machten meine Hausaufgaben für mich, als ich in der Schule war
Woot4Moo
Dies ist jedoch
alles andere als