Dosya büyüklüğünü değişkene almak ister miyim? Bu nasıl yapılır?linux kabuk dosya boyutu
ls -l | grep testing.txt | cut -f6 -d' '
boyutu verdi, ancak kabuk değişkeninde nasıl depolanır?
Dosya büyüklüğünü değişkene almak ister miyim? Bu nasıl yapılır?linux kabuk dosya boyutu
ls -l | grep testing.txt | cut -f6 -d' '
boyutu verdi, ancak kabuk değişkeninde nasıl depolanır?
size=`ls -l | grep testing.txt | cut -f6 -d' '`
Boşluk sınırlandığında, alan 6'da yer alacağının garantisi yok. –
Bu da verimsizdir çünkü 'grep' içine 'grep' listesi * tüm * dosyaları listeler ve isimlerini sıralar (bu, binlerce dosyaya sahip bir dizinde önemli miktarda zaman alabilir) ve ek olarak hataya yatkındır çünkü 'grep testing.txt',' 'not_testingatxt_file' gibi isimleri olan dosyaları döndürür (' .' ifadesinde bir regex, herhangi bir karakterle eşleşir). –
Eğer
$ var=$(ls -s1 testing.txt|awk '{print $1}')
(-s anlamı için man sayfasına bakın) Yoksa -c '%s'
ile stat
kullanabilirsiniz Yoksa kullanabilirsiniz ls
ile bu şekilde yapabiliriz bulmak, (GNU)
$ var=$(find testing.txt -printf "%s")
bulma çözümü, Windows'ta MINGW ve git bash üzerinde çalışır. Diğer cevapların hiçbiri MINGW üzerinde çalışmıyor. – JDiMatteo
* Her * POSIX sisteminde çalışan bir sürümü istiyorsanız, 'wc -c',' ls' davranışına * veya * GNU 'find' veya' stat' seçeneğine sahip olmaktan daha iyi olacaktır. –
wc -c/proc/cpuinfo gibi sahte dosyalar için daha doğru olduğunu unutmayın. – pixelbeat
size() {
file="$1"
if [ -b "$file" ]; then
/sbin/blockdev --getsize64 "$file"
else
wc -c < "$file" # Handles pseudo files like /proc/cpuinfo
# stat --format %s "$file"
# find "$file" -printf '%s\n'
# du -b "$file" | cut -f1
fi
}
fs=$(size testing.txt)
a=\`stat -c '%s' testing.txt\`;
echo $a
Bash Ben tahmin ediyorum? – ziya
evet bu bash kabuk ve hepinize teşekkür ederim. –
Olası çoğaltılabilir [Bir dosyanın boyutunu nasıl kontrol edebilirim?] (Http://stackoverflow.com/questions/5920333/how-to-check-size-of-a-file) –