comment cloner une liste de répertoires dans un autre répertoire

0

J'essaye de cloner un répertoire et ses sous-répertoires dans un autre répertoire. J'ai des centaines de répertoires de musique avec des sous-répertoires que je souhaite convertir de flac à ogg. Je veux que tous les sous-répertoires musicaux sous / Music soient clonés dans / Music / Oggs / afin que, lors de la conversion, les fichiers soient tous écrits dans les mêmes noms de répertoires. Voici ce que j'ai

/ Musique / Van_Halen_Discography / 1980, les femmes et les enfants d'abord /

Ce dont j'ai besoin, c'est du clone de répertoires à ceci:

/ Musique / Oggs / Van_Halen_Discography / 1980, les femmes et les enfants d'abord /

J'ai essayé d'utiliser 'find / Music -type d | cat> / Music / Oggs'

Mais ça n'a pas marché, qu'est-ce qui me manque? Merci

Widgeteye le terrible
la source
1
catne fait pas de répertoires. Il suffit de créer un fichier texte / Musique / Oggs dans la commande donnée
Vamsi

Réponses:

1

Vous pouvez utiliser rsync comme suit.

 rsync -av -f"+ */" -f"- *" /path/to/Music/ /path/to/Music/oggs

Ici, il est -adit à rsync de récidiver dans les répertoires et de préserver les liens, les autorisations et la propriété tout en le vrendant prolixe. -fest un filtre avec le premier argument incluant tous les répertoires et le second excluant tous les fichiers. Je suggère d’essayer d’abord un petit exemple si vous ne connaissez pas bien rsync.

Vamsi
la source
Cela a fonctionné, mais cela a rendu le répertoire / Music / Oggs / Music / then music, ce qui est bien, je viens d’entrer dans / Music / Oggs / Music et j'ai fait un 'mv * ../'. Merci
Widgeteye le Terrible
Le premier chemin aurait dû être /path/to/Music/avec la barre oblique de fin. Ma faute. Je suis content que vous ayez réussi.
Vamsi
0

Il existe un moyen simple, supposons que vous soyez ~/Music/avec le shell actuel.

mkdir Oggs            # In case you do not have done before    
cp -rp !(Oggs) Oggs  
  • cp est la commande normale utilisée sous Linux pour copier des fichiers et des répertoires
  • -rpou si vous préférez des -r -poptions pour rnaviguer dans les annuaires et pour préserver des accès horaires, des droits de propriété ...
    Utilisez cette option pour obtenir man cpun aperçu plus complet.
  • !(Oggs) Tricky avec !vous infirment ce qui est dans la parenthèse: si vous dites tous les fichiers copiste et non OggsàOggs

Remarque: Ceci nécessite shopt extglob, si est désactivé, utilisez shopt -s extglobpour l'activer.

Hastur
la source