Làm cách nào để tạo các thư mục 00-99 bằng một lệnh duy nhất trong Ubuntu?


16

Tôi cần tạo các thư mục bắt đầu từ 00 đến 99 (00, 01, 02, 03, v.v ....) ở vài trăm địa điểm. Có một dòng lệnh duy nhất sẽ cho phép tôi làm điều đó?

Câu trả lời:


45

Câu trả lời của mulaz là chính xác, nhưng nhiều người nói seqlà beacuse ác, hầu hết các vỏ sò sẽ cho phép bạn làm như sau

mkdir {00..99}

Tuy nhiên, trong một số phiên bản cũ hơn của bash, 0-9không có đệm, vì vậy bạn sẽ phải làm

mkdir 0{0..9} {10..99}

9
+1 nên là câu trả lời được chấp nhận IMHO. Bash không chỉ là thành ngữ này, nó không yêu cầu sử dụng chương trình bên ngoài (mà seq là).
— Trollhorn

1
Đây là cách nó nên được thực hiện.
— phoxis

7
Các công việc sau cũng vậy:> mkdir {0..9} {0..9}
— Orieg

17

Điều này sẽ làm gì?

for i in `seq -w 0 99`; do mkdir $i; done

thực hiện một vòng lặp cho các số 0-99 và "-w" đặt chiều rộng bằng nhau (đệm 0 cho 0-9)


7
seq -w 0 99 | xargs mkdircũng sẽ làm công việc.
— Jay

11
Bạn có thể bỏ vòng lặp và chỉ cần làm mkdir $(seq -w 0 99). Hoặc sử dụng backticks thay vì $(), nhưng tôi không thể đặt backticks vào vì cú pháp serverfault.
— Patrick

@Patrick: Có, bạn có thể: mkdir `seq -w 0 99` (Tôi không thể tránh thêm không gian). Xem ở đây , nhưng có vẻ như mẹo bao gồm các khoảng trắng trong dấu phân cách không hoạt động ở đây.
— Keith Thompson

2
Backticks @Patrick rất tệ: mywiki.wooledge.org/BashFAQ/082
— Andrew

@Andrew vâng Tôi biết điều đó, nhưng tôi thích ở lại với phong cách mã hóa của bất cứ điều gì tôi đang trả lời.
— Patrick

2

Tôi biết điều này đã cũ, nhưng khuyến nghị của tôi sẽ là:

cho tôi vào seq -f %02g 0 99; làm mkdir $ i; làm xong

-f% 02g đảm bảo nó giữ ít nhất hai ký tự, chẳng hạn như 00 hoặc 99, và vẫn sẽ cho phép 3 số ký tự vượt 99, vì vậy nếu bạn có 100, nó sẽ không trở thành 001. Nó sẽ là 00-99 100 thay vì 001- 100 như -w nào.

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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.