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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.