Ubuntu'da tek bir komutla 00-99 klasörleri nasıl oluşturulur?


17

Yüzlerce yerde 00'dan 99'a (00, 01, 02, 03 vb.) Başlayan klasörler oluşturmam gerekiyor . Bunu yapmama izin verecek tek bir satır komutu var mı?

Yanıtlar:


46

mulaz'ın cevabı doğrudur, ancak birçok insan seqkötü çünkü çoğu kabuk aşağıdakileri yapmanıza izin verecektir

mkdir {00..99}

Ancak bash'ın bazı eski sürümlerinde, 0-9yastıklı değil, bu yüzden yapmanız gerekir

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

9
+1 IMHO tarafından kabul edilen cevap olmalı. Bu deyimsel Bash sadece harici bir programın kullanılmasını gerektirmez.
Trollhorn

1
Bu böyle yapılmalı.
Phoxis

7
Aşağıdakiler de işe
yarar

17

Bu olur mu?

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

0-99 sayıları için bir döngü yapar ve "-w" eşit genişliği ayarlar (0-9 için 0 dolgu)


7
seq -w 0 99 | xargs mkdirişi de yapardı.
Jay

11
Döngüyü yok edebilir ve yapabilirsiniz mkdir $(seq -w 0 99). Ya da yerine backticks kullanın $(), ancak serverfault sözdizimi nedeniyle backticks koyamıyorum.
Patrick

@Patrick: Evet, şunları yapabilirsiniz: mkdir `seq -w 0 99` (Ek alandan kaçınamadım). Buraya bakın , ancak sınırlayıcılara boşluk eklemenin hilesi burada çalışmıyor.
Keith Thompson

2
@Patrick backticks kötü: mywiki.wooledge.org/BashFAQ/082
Andrew

@Andrew evet bunun farkındayım, ama cevapladığım şeyin kodlama stiliyle kalmayı tercih ediyorum.
Patrick

2

Bu eski olduğunu biliyorum, ama benim tavsiye olurdu:

i için seq -f %02g 0 99; mkdir $ i yapın; tamam

-f% 02g, 00 veya 99 gibi en az iki karakter kalmasını sağlar ve yine de 99'u geçen 3 karakter sayısına izin verir, bu nedenle 100'ünüz varsa 001 olmaz. 001 yerine 00-99 100 olur 100 gibi -w yapar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.