Làm cách nào để tạo thư mục trong thư mục trong terminal


12

Tôi có một thư mục có tên musictrong đó có tất cả các thư mục nghệ sĩ. Có cách nào để tạo ra các thư mục này: 1. Albums, 2. EP, 3. Singles, 4. Livetrong tất cả các thư mục nghệ sĩ với một lệnh?

Câu trả lời:


12

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/shlà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.


1
Ôi thật đẹp, điều này sẽ đi vào lịch sử ;-)
Steve

18

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 -pnày là viết tắt của cha mẹ, nếu dễ nhớ hơn, bạn có thể sử dụng --parentthay 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-Exansionhttps://www.linux.com/tutorials/all-about-curly-braces-bash/


5
Cá nhân tôi thích câu trả lời này hơn, vì nó không cần bạn phải suy nghĩ như một lập trình viên. Tôi hiếm khi sử dụng phương pháp nẹp xoăn, nhưng nó thanh lịch hơn nhiều.
jawtheshark

6
OP muốn 4 subir được đặt bên trong mỗi subir của chính nó music, vì vậy đối số chính xác mkdirsẽ là./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
joH1

1
FYI, -plà hình thức ngắn của --parent.
Amedee Van Gasse
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.