วิธีสร้าง 100 ไดเรกทอรีย่อยโดยใช้สคริปต์ Bash


14

ฉันพยายามสร้างไดเรกทอรีย่อย 100 ไดเรกทอรีในบางไดเรกทอรีโดยใช้ Bash script

ฉันเริ่มต้นด้วยการforวนรอบพื้นฐาน(นั่นคือfor f in $FILES;do mkdir f done) แต่มันไม่ทำงาน

เพื่อให้ชัดเจนเกี่ยวกับสิ่งที่ฉันต้องการจะทำ: ฉันพยายามที่จะรับ 100 ไดเรกทอรีย่อยที่แตกต่างกันในไดเรกทอรีปัจจุบัน (ที่นี่ฉันใช้home='pwd') /home/paul/main_directory/ยกตัวอย่างเช่นในไดเรกทอรี

และที่นี่ฉันต้องการสร้าง 100 ไดเรกทอรีด้วยดัชนีจาก 1 ถึง 100 เช่นนี้

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

คำตอบ:


19

เพื่อตอบคำถามของคุณโดยใช้forลูปที่แนะนำ- นิพจน์รั้งที่กล่าวถึงโดย steeldriver ทำงานเช่นกัน:

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

หากต้องการตอบคำถามที่อัปเดตของคุณ:

ทั้งคู่ - คำตอบของผู้ขับรถเหล็กและคำตอบของฉันก็คือทั้งคู่

หากคุณต้องการใช้สิ่งนี้ในสคริปต์ทุบตีคุณอาจเขียนดังนี้:

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

ขอโทษฉันไม่ต้องการแก้ไขคำตอบของคุณฉันแค่ต้องการแสดงความคิดเห็น ... ouch ...
Pavol Namer

ขอบคุณมากสำหรับคำตอบอย่างรวดเร็วของคุณตอนนี้ฉันมีแล้ว ขอบคุณหลาย ๆ ครั้งสิ่งนี้ทำให้ฉันปลอดภัยได้มาก :)
Pavol Namer

1
ทางเลือกสำหรับกรณีที่คุณไม่มี BASH เต็มรูปแบบ แต่เพียงแค่ / bin / sh คุณสามารถใช้seqแทน: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn

สร้างไดเรกทอรี '{1..3}' เมื่อพยายามทำ 3 ครั้งเดียวกัน เบาะแสอะไรที่อาจผิดพลาด?
soufrk


8

หากต้องการเพิ่มสิ่งเล็กน้อยลงในคำตอบที่น่าประทับใจอย่างแท้จริงที่นักขับเหล็กทำ

คุณสามารถสร้างไดเรกทอรีที่เรียงลำดับ "ถูกต้อง" โดยเติมเต็มด้วยศูนย์

mkdir subdirectory_{001..100}

(ถ้าคุณชอบคำตอบนี้โปรดตอบคำตอบของผู้ขับรถเหล็กฉันยังไม่สามารถแสดงความคิดเห็นหรือจะทำเช่นนั้น)


สร้างไดเรกทอรีย่อยชื่อ 'subdirectory_ {001..100}' เบาะแสใด ๆ เกี่ยวกับสิ่งที่อาจผิดพลาดไป
soufrk

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