ls-command: dosya boyutu megabayt olarak nasıl görüntülenir?


161

Unix'te (Tru64), lskomutun dosya boyutunu megabayt olarak göstermesini nasıl sağlayabilirim ? Şu anda aşağıdakileri kullanarak bayt olarak gösterebiliyorum:

ls -la

Yanıtlar:


247

Belki -hsenin için yeterli:

-h
-l seçeneğiyle birlikte kullanıldığında, birim soneklerini kullanın: Beden 2 sayısını kullanarak basamak sayısını üç ya da altına düşürmek için bayt, Kilobayt, Megabayt, Gigabayt, Terabayt ve Petabyte kullanın.

ls -lah

Genel öneri: man commandnameBelirli bir komutun kılavuzunu / yardımını okumak için kullanın, örn man ls.


1
Teşekkürler, fakat -h seçeneği Tru64 Unix'te görünmüyor.

8
Genel öneri: GNU araçlarını kurun ...
reinierpost

22
Erkek kullanımıyla ilgili ipucunu sevdim, ama gerçekten, Google’da arama yapmak, çoğu zaman (Google’da bu sonucu bulduğumda olduğu gibi) insanı kullanmaktan çok daha hızlı.
trusktr

4
Google’ın para cezası ve genel ipuçları için hepsi, ancak sonuçta man sayfaları sistem / işletim sistemidir, hatta genellikle yazılım derlendiğinde veya yüklendiğinde oluşturulan ve bu nedenle de kendi sisteminizdeki yazılım için yetkili olan ana bilgisayara özgüdür.
Nevin Williams

1
Sadece tam çembere gelmek için, gnu / linux için çevrimiçi bir adam var: linux.die.net/man
MariusMatutiae 11:13

32

ls --block-size=Mboyutları Megabayt olarak yazdırır, ancak 1 MB'nin altındaki herhangi bir şey için de 1 MB gösterir. Yine de, bu seçeneğin UNIX sürümünüzde kabul edilebilir olup olmadığından emin değilim.

Aslında ls -lh, dosya yeterince büyükse Gigabayt cinsinden boyutlar da yazdırır (Her neyse: Linux 64bit'te bu işe yarıyor:>)

Yan düğümde: du -sh *geçerli dizindeki dizin boyutlarını da yazdırır.


Teşekkürler! Bir klasördeki canlı dosya değişikliklerini ls -hwhile true ; do ls -al --block-size=M ; sleep 1 ; done
izlemem gerekiyordu

15

Sizin awkiçin matematiği kullanmak zorunda kalacaksınız:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

Bu, daha küçük olan dosyaların çıktısını etkilemez mega.

Alan numarasını ls, düzenlendiği şekilde eşleştirmek için ayarlamanız gerekebilir . megaTercihiniz buysa "1000000" olarak değiştirebilirsiniz .

Bu, muhtemelen istediğinizden daha fazla ondalık basamak basacaktır. Bir yuvarlama işlevi uygulayabilirsiniz.


3
ls -lhVeya çok daha az zarif ls --block-size=M, ama AWK çok yararlı!
Statwonk

Tam ihtiyacım olan şey. Diğer tüm çözümler en yakın MB'ye yuvarlanır, ancak bu birkaç ondalık basamak gösterir ve kolayca özelleştirilebilir.
zeroimpl

3
Bu, -h seçeneğine sahip olmayan sistemler için (AIX - Sana bakıyorum) güzel bir çözümdür.
Buggabill


8

deneyin ls -lash, boyutları okunabilir biçimde yazdırıyor



5

Ayrıca yazabilirsiniz

du -sh ./*

Bu, geçerli dizin altındaki tüm klasörleri Kb, Mb, Gb.


2

Yalnızca belirli bir dosyanın boyutunu istiyorsanız, önceki cevapların önemsiz bir önerisi olan komut şöyledir:

ls -sh dosya adı

-sboyutu içindir ve hİnsan Okunabilir içindir (yukarıda belirtildiği gibi).

Çıktı şöyle görünecek:

753M myfilename

Dosya adlarını dışarıda bırakırsanız, her dosya boyutunu adının yanına yerleştirerek dizini listeler - ls -ladosya adı argümanları olmadan çağrıldığında yapılanın aksine .

Bu yardımcı olur umarım.


2
Bu soru Tru64 Unix'le ilgili ve OP neredeyse beş yıl önce -hseçeneğin lso sistemde mevcut olmadığını belirtti.
G-Man

2
ls -l --block-size=MB 

İçin --block-sizeparametre:

  • MB10 ^ 6 için kullanın
  • sadece M2 ^ 20 için kullanın

Bunun ondalık basamak göstermeyeceğini unutmayın . Ayrıca, 0 kB'nin üzerinde ancak 1 MB'den büyük olmayan herhangi bir şey olarak gösterilecektir1MB . Bu nedenle ls -l --block-size=kBdaha faydalı buldum .
DaAwesomeP

0

Dosya boyutuyla ilgileniyorsanız ve lskomutu kullanmanız gerekmiyorsa , aşağıdakileri deneyin:

# echo "Hello World" > file.txt
# ls -l file.txt 
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12

Bu, hiçbir şeyi ayrıştırmaya gerek kalmadan dosya boyutunu yazdırır.


OP MB, istediğiniz büyüklüğü belki bir stat seçeneği insan tarafından okunabilir formunda boyut üretecek?
Archemar

Ah, bu benim aptallıktı. Onu yakaladığın için teşekkürler. stat, --printf veya bildiğim kadarıyla başka bir seçenek kullanarak boyutu değiştirme seçeneğine sahip değil. Büyük olasılıkla printf ve bc komut satırı yardımcı programlarının bir arada kullanılmasını gerektirir. Bu durumda neden rahatsız ediyorsun. ls ve cut / awk daha hızlı olur.
SKN
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.