Dosya boyutlarını megabayt olarak göstermesini nasıl sağlayabilirim?


442

Linux'un lsdosya boyutunu MB olarak göstermesi için hangi komutlara ihtiyacım var ?

Yanıtlar:


513

ls -l --block-size=MSize uzun formatlı bir liste (aslında dosya boyutunu görmeniz gerekir) ve en yakın MiB'ye kadar yuvarlak boyutlarda dosya verir.

MiB (2 ^ 20 bayt) birimi --block-size=MByerine MB (10 ^ 6 bayt) istiyorsanız, bunun yerine kullanın.

MSonekin dosya boyutuna eklenmesini istemiyorsanız, bunun gibi bir şey kullanabilirsiniz --block-size=1M. Bunu önerdiğiniz için teşekkürler Stéphane Chazelas .

Dosya boyutlarını özellikle megabaytlardan ziyade "makul" birimlerde istiyorsanız, -lhuzun formatlı bir liste ve insan tarafından okunabilen dosya boyutu sunumu elde etmek için kullanabilirsiniz . (Böylece gibi dosya boyutu görürsünüz Bu yaklaşık 1-3 hane ile sunulan dosya boyutlarını tutmak için dosya boyutu birimlerini kullanacak 6.1K, 151K, 7.1M, 15M, 1.5Gvb.

Bu --block-sizeparametre man sayfasında ls; man lsve arayın SIZE. MB / MiB dışındaki birimlere de izin verir ve görünüşünden (bunu denemedim) keyfi blok boyutları da (böylece, dosya boyutunu isterseniz 429 baytlık bir blok sayısı olarak görebilirsiniz. ) için.

Her ikisinin de --block-sizeve Open Group'un en-h üstünde GNU eklentileri olduğuna dikkat edinls , bu nedenle (çoğu Linux kurulumunun yaptığı) bir GNU kullanıcısı değilseniz bu çalışmayabilir. lsGNU coreutils 8.5 --block-boyutu ve yukarıda tarif edildiği gibi h destekler. Bunu işaret ettiği için kojiro'ya teşekkürler .


11
Fark edilmeye değer bir fark --block-size=Molabilir : Mboyutun yanında bir sonek görüntülenmesine neden olur ve --block-size=1Matlamak için kullanabilirsiniz . Bunun için GNU l'lere ihtiyacınız olduğunu belirtmek faydalı olabilir (çoğu gömülü olmayan Linux sistemlerinde GNU l'lar olacaktır).
Stéphane Chazelas

2
Bu GNU olur lsmu? Standardınls böyle bir argümanı yoktur. İle xsi uzantısı ls vardır -so blokların sayısını rapor yapar bayrağı, fakat standart bir bayrak yoktur --block-size.
kojiro

2
@kojiro GNU ls, --block-sizeDebian Squeeze sistemime yüklü olan coreutils 8.5'e sahip. Soru açıkça Linux için olduğu ve başka bir şey belirtmediği için, GNU coreutils'in etrafında merkezli bir kullanıcı alanı olduğunu kabul ediyorum. Bunu açıklığa kavuşturmak için cevabı güncelledim. (Ayrıca, Açık Grup ls ya -h sahip görünmemektedir. :))
Bir CVn

2
@EmanuelBerg, 1000 ^ 7 (10 ^ 21) 2 ^ 64'ten büyüktür (~ 10 ^
19.27'dir

4
@Tom Cevabın son paragrafında yazdığı gibi --block-size, bir GNU uzantısıdır. Mac OS X’in GNU’yu kullanmadığından şüpheleniyorum ls.
CVn

384

ls -lh insan tarafından okunabilen dosya boyutlarını, uzun formatı verir.

Gerektiği gibi k, M, G ve T soneklerini (veya bayt için sonek yok) kullanır, böylece sayı küçük kalır, örneğin 1.4Kveya 178M.

-h POSIX taban çizgisinin değil, bir GNU coreutils uzantısıdır.

Bunun soruyu tam olarak sorulduğu gibi yanıtlamadığını unutmayın. Küçük boyutlarda veya devasa dosyalar için bile kesinlikle MiB'dels boyutlar istiyorsanız, Michael Kjörling'in cevabı GNU coreutils için yapar .


4
Bu, 1.0 GiB'den küçük bir boyutta dosya boyutlarını GB olarak basacaktır (inanıyorum).
36'da CVn

5
@ MichaelKjörling Bunu kötü bir cevap olarak görmüyorum (oylama olmamasına rağmen). Bazen OP bir soruyu tam olarak olması gerektiği gibi söylemiyor, bu yüzden insan tarafından okunabilir bir çıktı almak istiyorlardı ve bunun yerine "MB olarak" yazıyorlardı.
Dason

5
Upvoted. "Bu (MB) sorusunu yanıtlamıyor" tam anlamıyla geçerli bir ifadedir, ancak bu cevap sadece bu SO sayfasının kullanışlılığını arttırmıştır çünkü bu cevap aynı bağlamdadır. Ben sadece bu sayfaya genel "insan tarafından okunabilir biçimde gösterileri göster" şartına genel bir çözüm aramak için geldim ve hyazmaktan daha kolay--block-size=M
Ejaz

6
"İnsan tarafından okunabilir" ironik bir şey. ls -lİnsan değilse, kim kullanıyor ? : p
Blauhirn

2
@chengyang: Çıktıyı çözümlemek ls -l, zamanın% 99'unu şeyler yapmak için yanlış yoldur. unix.stackexchange.com/questions/128985/why-not-parse-ls adresini ziyaret edin . Bu% 1 cömert davranıyor ve bir kerelik kullanım için etkileşimli olarak yazdığınız tek gömleklerle sınırlı, bilinmeyen dosya adlarında tekrar tekrar kullanacağınız bir komut dosyası değil.
Peter Cordes

45

ls -lhS okunabilir biçimde, boyuta göre sırala


2
Lütfen ls -lhsoruyu gerçekten yanıtlamadığı nedenlerden dolayı cevap hakkındaki yorumları inceleyin .
Alexander Batischev,

2
Bu sadece soruyu gerçekten cevaplamakla kalmıyor (Sirex'in cevabına yapılan yorumlarda da belirtildiği gibi) değil, aynı zamanda mevcut cevapların hiçbiriyle ilgili bir şey eklemiyor: OP sıralama düzenini sormuyor.
CVn

6
sadece boyuta göre sıralama, insanların sahip olabileceği potansiyel bir takip olabileceğini düşündü, en azından sahip olduğum şey
buydu

1
Bu durumda, insanlar tam olarak bu senaryo hakkında olan, büyüklüğüne göre sıralanmış tüm dosyalar nasıl listelenmelidir .
Bir CVn

Ben Sirex cevap detaylandıran özellikle bu cevaplara layık bir ek olduğuna inandığımız
Dowlers

9

Ve bu, her şeyi bir dizin sırasına göre artan dosya boyutuna göre (yine de okunabilir) listeleme seçeneğidir.

ls -lSrh

Soruya cevap vermeyen diğer cevaptan gelen yorumların, bunun için de geçerli olduğunu düşünüyor musunuz ?
Dan Dascalescu

@DanDascalescu Hayır. Bu yorumlar yardımcı değildir, söz konusu 2 cevap vardır. Sadece 2 kuruş hack olarak, hakkında hiçbir şey bilmediği bir linux sistemindeki dosya boyutlarının nasıl listeleneceğini bulmaya çalışıyor.
Çeyizciler
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.