4

В Linux, учитывая путь к файлу, есть ли способ узнать, в какой файловой системе он находится?

В частности, я пытаюсь выяснить, сколько места осталось на диске, в котором находится /home/itsadok/bananas . Из df я вижу, сколько места осталось на различных смонтированных дисках, но сложно понять, какой из них актуален.

Между прочим, я хочу сделать это из сценария, поэтому образованные догадки не допускаются.

3 ответа3

6

Бежать

df -k /home/itsadok/bananas

(-k для размера в килобайтах, вы можете игнорировать его, если не хотите)

Это даст вам размер, оставленный только для файловой системы, содержащей файл, по крайней мере, в AIX.

1

Прочитав этот вопрос, я играл с df и думаю, что это может кому-то помочь:
Чтобы получить его в сценарии, вы должны удалить строку заголовка, то есть просто сохранить строку вывода с текстом /dev/sda1. Итак, я сделал это:

$ df -h . | grep dev

который дал мне это:

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

И чтобы получить часть 36G , я сделал это:

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

Игра с разрезом дает и другие части:

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

Как указывает itsadok ниже, AWK лучше для этой цели , так как изменения числа пробелов и / или поля ширины будут нарушать решение , основанное разреза.
Так что это лучше

$ df -h . | grep dev | awk '{print $4}' 
36G
0

Так как это в сценарии:

stat -fc '%a * %S' -- "$fname" |bc

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .