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.


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.