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.