J'ai cette structure de dossiers:
├── foo1
│ ├── bar1.txt
│ └── bar2.txt
├── foo2
│ ├── bar3.txt
│ └── bar4 with a space.txt
└── foo3
└── qux1
├── bar5.txt
└── bar6.txt
que je voudrais aplatir en ceci, avec un trait de soulignement entre chaque niveau de dossier:
├── foo1_bar1.txt
├── foo1_bar2.txt
├── foo2_bar3.txt
├── foo2_bar4 with a space.txt
├── foo3_qux1.bar6.txt
└── foo3_qux1_bar5.txt
J'ai regardé autour de moi et je n'ai trouvé aucune solution qui fonctionne, principalement parce que mon problème a deux particularités: il peut y avoir plus d'un niveau de dossier à l'intérieur de la racine et aussi parce que certains fichiers peuvent avoir des espaces.
Une idée de comment accomplir cela en bash? Merci!
Edit : Running gleen jackman a proposé la réponse que j'obtiens:
Il existe deux traits de soulignement pour le dossier de premier niveau. Avez-vous une idée de comment éviter cela ou simplement le renommer afin que ce ne soit qu'un seul trait de soulignement? Merci.
foo1__qux1_bar5.txt
, deux soulignements dans le premier niveau de dossier qui est. J'ai essayé de jouer avec votre ligne bash mais rien ne semblait fonctionner. Peut-être que je dois ajouter quelque chose?