Câu trả lời:
Chắc chắn, thực hiện điều này trong thư mục nhạc nơi thư mục nghệ sĩ là:
for artist in */; do
for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
mkdir "$artist/$folder"
done
done
Bạn có thể thực thi điều này trên CLI của mình hoặc bạn có thể biến nó thành tập lệnh shell bằng cách thêm #!/bin/sh
làm dòng đầu tiên và lưu nó vào một tệp. Đừng quên làm cho tập tin thực thi.
Đối với những gì nó làm: nó lặp đi lặp lại trên tất cả các thư mục ( */
) trong thư mục hiện tại, sau đó cho mỗi thư mục này, lặp lại thư mục con mong muốn (thứ hai for
), và sau đó tạo thư mục con (tương đối) mong muốn.
Bạn có thể muốn đeo niềng răng {xoăn} cho cái này
Vì lý do này, chúng tôi sẽ giả vờ ./music không tồn tại
Trong thư mục cơ sở của bạn cho ./music, chúng tôi sẽ sử dụng lệnh -p để tạo thư mục con khi cần thiết và dấu ngoặc nhọn sẽ được sử dụng để tạo một mảng nhỏ
Lệnh -p
này là viết tắt của cha mẹ, nếu dễ nhớ hơn, bạn có thể sử dụng --parent
thay thế
mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}
Nếu bạn muốn chơi xung quanh với điều này, bạn có thể, ví dụ
mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}
Bạn có các biểu thức lồng nhau, bạn có thể chèn dấu ngoặc vào giữa chuỗi và bạn cũng có thể cho phép thư mục con theo dõi và bạn có thể cụ thể với các thư mục con của mình cho một mảng cụ thể
Tôi đề nghị bạn tạo một tệp ở đâu đó nơi bạn có thể tạo các mẫu của riêng mình bằng các lệnh như vậy và cung cấp cho chúng các mô tả
Truy cập trang này để biết thêm thông tin https://www.linuxjournal.com/content/bash-brace-Exansion và https://www.linux.com/tutorials/all-about-curly-braces-bash/
music
, vì vậy đối số chính xác mkdir
sẽ là./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
-p
là hình thức ngắn của --parent
.