Quanto espaço está disponível no dispositivo que contém um determinado arquivo

4

No linux, dado um caminho para um arquivo, existe alguma maneira de saber em qual sistema de arquivos ele está?

Especificamente, estou tentando descobrir quanto espaço resta na unidade em que /home/itsadok/bananas está. A partir de df , posso ver quanto espaço resta nas várias unidades montadas, mas é difícil descobrir qual deles é relevante.

A propósito, eu quero fazer isso a partir de um script, então adivinhações educadas não são permitidas.

    
por itsadok 28.10.2009 / 07:14

3 respostas

6

Executar

df -k /home/itsadok/bananas

(- k para tamanho em kilobytes, você pode ignorá-lo se não quiser)

Isso lhe dará o tamanho restante apenas para o sistema de arquivos que contém o arquivo, pelo menos no AIX.

    
por 28.10.2009 / 07:15
1

Eu estava brincando com df depois de ler esta pergunta e acho que isso pode ser útil para alguém:
Para obtê-lo em um script, você tem que remover a linha do título, ou seja, basta manter a linha de saída que tem o texto / dev / sda1 . Então eu fiz isso:

$ df -h . | grep dev

que me deu isso:

/dev/sda1              41G  3.6G   36G  10% /

E para obter a parte 36G , fiz isso:

$ df -h . | grep dev | cut -d' ' -f20

Brincando com o recorte também fornece as outras partes:

$ df -h . | grep dev | cut -d' ' -f1
/dev/sda1

Como o itsadok aponta abaixo, awk é melhor para esse propósito, já que uma mudança no número de espaços e / ou larguras de campo irá quebrar um corte solução baseada em strong.
Então, isso é melhor:

$ df -h . | grep dev | awk '{print $4}' 
36G
    
por 31.10.2009 / 19:18
0

Como isso está em um script:

stat -fc '%a * %S' -- "$fname" |bc
    
por 10.07.2010 / 01:01