Utilisation de la commande find avec une copie récursive sans -r ou une boucle while / for

0

J'ai le problème suivant. Normalement, on utilise la commande find exec cp -r pour tout copier d'un répertoire à un autre. Dans ce cas, je ne suis pas autorisé à le faire ou à utiliser une boucle while / for pour la commande find.

Ce dont j'ai besoin, c'est de tout copier d'un répertoire à un autre avec la structure de répertoires complète.

Linus Kleen
la source
Pourquoi avez-vous besoin find pour ça?
Roman Newaza
Parce que mon professeur m'a dit alors haha. Mais googler ne donne aucun résultat.
Vous pouvez utiliser rsync -r
Roman Newaza
Je sais, mais nous ne pouvons pas utiliser quelque chose de différent, alors trouvons ...
vous pouvez utiliser ls -R pour lister vos répertoires de manière récursive et diriger le résultat vers une boucle.
Roman Newaza

Réponses:

1

Vous pouvez commencer avec quelque chose comme ceci:

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

qui crée la structure de répertoire sous le répertoire de destination. Vous pouvez ajouter de nombreuses commandes à printf.

perreal
la source
1
Je souhaite que les gens fassent mes devoirs pour moi quand j'étais à l'école
Woot4Moo
c'est loin d'être complet si
perreal