จะสร้างโฟลเดอร์ 00-99 ด้วยคำสั่งเดียวใน Ubuntu ได้อย่างไร


17

ฉันต้องการสร้างโฟลเดอร์เริ่มจาก 00 ถึง 99 (00, 01, 02, 03, ฯลฯ .... )ในหลายร้อยแห่ง มีคำสั่งบรรทัดเดียวที่จะให้ฉันทำอย่างนั้น?

คำตอบ:


46

คำตอบของ mulaz นั้นถูกต้อง แต่หลายคนพูดว่าseqเป็น beacuse ชั่วร้ายเปลือกหอยส่วนใหญ่จะให้คุณทำสิ่งต่อไปนี้

mkdir {00..99}

อย่างไรก็ตามใน bash เวอร์ชันเก่าบางรุ่น0-9คุณไม่ต้องทำ

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

9
+1 ควรเป็นคำตอบที่ได้รับการยอมรับ IMHO ไม่เพียง แต่เป็นสำนวนนี้เท่านั้นมันไม่จำเป็นต้องใช้โปรแกรมภายนอก (ซึ่งเป็น seq)
Trollhorn

1
นี่คือวิธีที่ควรทำ
phoxis

7
งานต่อไปนี้ก็เช่นกัน:> mkdir {0..9} {0..9}
Orieg

17

สิ่งนี้จะทำอย่างไร

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

ทำลูปสำหรับตัวเลข 0-99 และ "-w" ตั้งค่าความกว้างเท่ากัน (0 padding สำหรับ 0-9)


7
seq -w 0 99 | xargs mkdirก็จะทำงานเช่นกัน
Jay

11
mkdir $(seq -w 0 99)คุณสามารถทิ้งวงและเพียงแค่ทำ หรือใช้ backticks แทน$()แต่ฉันไม่สามารถใส่ backticks ลงในเพราะเซิร์ฟเวอร์ผิดซินแท็คซ์
Patrick

@ แพทริก: ใช่คุณสามารถ: mkdir `seq -w 0 99` (ฉันไม่สามารถหลีกเลี่ยงพื้นที่พิเศษ) ดูที่นี่แต่ดูเหมือนว่าเคล็ดลับในการรวมช่องว่างในตัวคั่นไม่ทำงานที่นี่
Keith Thompson


@ แอนดรูว์ใช่ฉันรู้แล้ว แต่ฉันชอบที่จะอยู่กับรูปแบบการเข้ารหัสของสิ่งที่ฉันตอบกลับ
Patrick

2

ฉันรู้ว่ามันเก่า แต่คำแนะนำของฉันจะเป็น:

สำหรับฉันในseq -f %02g 0 99; ทำ mkdir $ i; เสร็จแล้ว

-f% 02g ช่วยให้มั่นใจได้ว่าจะมีอักขระอย่างน้อยสองตัวเช่น 00 หรือ 99 และจะยังคงอนุญาตให้มีตัวเลข 3 ตัวที่เกิน 99 ตัวดังนั้นถ้าคุณมี 100 มันจะไม่กลายเป็น 001 มันจะเป็น 00-99 100 แทน 001- 100 เช่น -w ทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.