Tôi có cấu trúc thư mục này:
├── foo1
│ ├── bar1.txt
│ └── bar2.txt
├── foo2
│ ├── bar3.txt
│ └── bar4 with a space.txt
└── foo3
└── qux1
├── bar5.txt
└── bar6.txt
rằng tôi muốn làm phẳng điều này, với một dấu gạch dưới giữa mỗi cấp độ thư mục:
├── foo1_bar1.txt
├── foo1_bar2.txt
├── foo2_bar3.txt
├── foo2_bar4 with a space.txt
├── foo3_qux1.bar6.txt
└── foo3_qux1_bar5.txt
Tôi đã nhìn xung quanh và tôi không tìm thấy bất kỳ giải pháp nào hoạt động, chủ yếu là tôi nghĩ bởi vì vấn đề của tôi có hai đặc điểm: có thể có nhiều hơn một cấp thư mục bên trong thư mục gốc và cũng vì một số tệp có thể có khoảng trắng.
Bất kỳ ý tưởng làm thế nào để thực hiện điều này trong bash? Cảm ơn!
Chỉnh sửa : Chạy gleen jackman đề xuất câu trả lời Tôi nhận được điều này:
Có hai dấu gạch dưới cho thư mục cấp đầu tiên. Bất kỳ ý tưởng làm thế nào để tránh điều này hoặc chỉ đổi tên nó để chỉ là một gạch dưới? Cảm ơn.
foo1__qux1_bar5.txt
, hai dấu gạch dưới ở cấp thư mục đầu tiên. Đã thử gây rối với dòng bash của bạn nhưng dường như không có gì để làm việc. Có lẽ tôi cần thêm một cái gì đó?