tamanho médio do arquivo no Linux, tipo de arquivo específico

0

Eu tenho diretório i com um monte de arquivos diferentes. É possível calcular o tamanho médio de arquivos com um tipo de arquivo específico, no meu caso * .txt? Eu quero fazer isso para todos * .txt no diretório atual e subpastas.

    
por user780564 15.10.2017 / 11:09

2 respostas

1

Você pode usar stat -c%s *filename* para obter o tamanho de cada arquivo, e ls -l *.txt | wc -l (nota ls dará um erro se não houver arquivos * .txt no diretório) para obter o número de arquivos .txt no diretório atual.

Bash, AFIK, não suporta aritmética de ponto flutuante, então você precisará usar algum outro programa para calcular o tamanho médio. Sugiro usar bc .

O script a seguir imprimirá o tamanho médio de todos os arquivos * .txt no diretório atual

#!/bin/bash

tsize=0
fcount='ls -l *.txt | wc -l'

for f in *.txt
do
    fsize='stat -c%s $f'
    tsize='expr $tsize + $fsize'
done
average='echo "$tsize / $fcount" | bc -l'
echo "Average size: $average"

Observe que você receberá um erro de ls se não houver arquivos .txt no diretório atual.

    
por 15.10.2017 / 12:01
0

Usando o comando du que pode produzir um total geral de todos os arquivos listados:

echo $(( $(du -sbc *.txt | tail -1 | cut -f 1) / $(ls *.txt | wc -l) ))

Use -k ou -m em vez de -b para outras unidades de medida.

    
por 15.10.2017 / 15:44

Tags

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warning – yii\base\ErrorException

PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20190902/memcached.so (/usr/lib/php/20190902/memcached.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/memcached.so.so (/usr/lib/php/20190902/memcached.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '514464',
    'url' => 'linux-average-filesize-specific-file-type',
];

$_COOKIE = [
    '_csrf-frontend' => 'fcac64f2ba735e9ff862e02e50aad5a786f07aec7a636276caeb23aaeac4f150a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"iFqdJDyZrfU579PMXQzQGGTt0jHljJEl";}',
    'advanced-frontend' => 'kh7jv63g5oblrnbm58jda8abc5',
];

$_SESSION = [
    '__flash' => [],
];