Làm cách nào để tạo 100 thư mục con bằng cách sử dụng tập lệnh Bash?


14

Tôi đang cố gắng tạo 100 thư mục con khác nhau trong các thư mục nhất định bằng cách sử dụng tập lệnh Bash.

Tôi bắt đầu với một forvòng lặp cơ bản (nghĩa là for f in $FILES;do mkdir f done), nhưng nó không hoạt động.

Để rõ ràng về những gì tôi muốn làm: Tôi cố gắng để có được 100 thư mục con khác nhau trong các thư mục hiện tại (ở đây tôi sử dụng home='pwd'). Ví dụ, trong thư mục /home/paul/main_directory/.

Và ở đây tôi muốn tạo 100 thư mục có chỉ mục từ 1 đến 100, như thế này:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

Câu trả lời:


19

Để trả lời câu hỏi của bạn bằng cách sử dụng forvòng lặp được đề xuất của bạn - biểu thức cú đúp được đề cập bởi Steeldo cũng hoạt động:

for i in {1..100}; do mkdir subdirectory_$i; done

Để trả lời câu hỏi cập nhật của bạn:

Cả hai - câu trả lời của người thép và câu trả lời của tôi đều có nghĩa là một lớp lót.

Nếu bạn muốn sử dụng điều này trong tập lệnh Bash, có lẽ bạn sẽ viết nó như sau:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done

xin lỗi tôi không muốn chỉnh sửa câu trả lời của bạn, tôi chỉ muốn bình luận nó ... ouch ...
Pavol Namer

Cảm ơn bạn rất nhiều, vì câu trả lời rất nhanh của bạn, bây giờ tôi đã có. Cảm ơn bạn rất nhiều lần, điều này an toàn cho tôi rất nhiều thời gian :)
Pavol Namer

1
một thay thế cho các trường hợp bạn không có BASH đầy đủ mà chỉ là / bin / sh, bạn có thể sử dụng seqthay thế: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn

Tạo thư mục '{1..3}', khi thử thực hiện 3 lần tương tự. Bất kỳ manh mối những gì có thể đã đi sai?
soufrk

40

Cách dễ nhất có lẽ là sử dụng mở rộng nẹp

mkdir subdirectory_{1..100}

8

Để thêm một chút gì đó vào câu trả lời thực sự ấn tượng được đưa ra bởi Steeldo:

Bạn có thể tạo các thư mục sắp xếp "đúng" bằng cách đệm bằng không.

mkdir subdirectory_{001..100}

(Nếu bạn thích câu trả lời này, vui lòng nêu lên câu trả lời của Steeldo. Tôi chưa thể bình luận, hoặc sẽ làm như vậy.)


Tạo một thư mục con có tên 'thư mục con_ {001..100}'. Bất kỳ manh mối nào về những gì có thể đã đi sai.
soufrk

Không ý kiến. Nó hoạt động tốt cho tôi ở đây. Bạn đang sử dụng bash?
MDeBusk
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.