I have this folder structure:
├── foo1
│ ├── bar1.txt
│ └── bar2.txt
├── foo2
│ ├── bar3.txt
│ └── bar4 with a space.txt
└── foo3
└── qux1
├── bar5.txt
└── bar6.txt
that I would like to flatten into this, with an underscore between each folder level:
├── foo1_bar1.txt
├── foo1_bar2.txt
├── foo2_bar3.txt
├── foo2_bar4 with a space.txt
├── foo3_qux1.bar6.txt
└── foo3_qux1_bar5.txt
I've looked around and I haven't found any solution that work, mostly I think because my problem has two particularities: there might be more than one folder level inside the root one and also because some files might have spaces.
Any idea how to accomplish this in bash? Thanks!
Edit: Running gleen jackman proposed answer I get this:
There are two underscores for the first level folder. Any idea how to either avoid this or just rename it so that is just one underscore? Thanks.