Как протестировать, если данный путь является точкой монтирования

В общем, да, возвращаемый тип метода переопределения может быть другим. Но это не так. В этом случае есть некоторые случаи.

Случай 1: Если тип возврата является примитивным типом данных или void.

Выход: если тип возврата недействителен или примитив, тогда тип данных метода родительского класса и метод переопределения должны быть одинаковыми. например если тип возвращаемого значения - int, float, string, то он должен быть таким же

Случай 2: Если тип возвращаемого значения является производным типом данных:

Выход: если тип возвращаемого значения родительского класса метод является производным типом, тогда тип возврата метода переопределения - это тот же производный тип данных подкласса к производному типу данных. например Предположим, что у меня есть класс A B - подкласс к A C - подкласс к B D - это подкласс к C, то если если суперкласс возвращает тип A, то переопределяющий метод является подклассом, который может возвращать типы A, B, C или D i.e его подтипы. Это также называется ковариацией.

34
задан Andrea Francia 26 January 2009 в 09:33
поделиться

7 ответов

Я обнаруживаю, что на моем Fedora 7 существует команда точки монтирования.

От точки монтирования человека:

NAME
       mountpoint - see if a directory is a mountpoint

SYNOPSIS
       /bin/mountpoint [-q] [-d] /path/to/directory
       /bin/mountpoint -x /dev/device

, По-видимому, это идет с sysvinit пакетом, я не знаю, доступна ли эта команда в других системах.

[root@myhost~]# rpm -qf $(which mountpoint)
sysvinit-2.86-17
52
ответ дан Andrea Francia 10 October 2019 в 13:47
поделиться

Не доверие mount, /etc/mtab, /proc/mounts, и т.д.:

if [ `stat -c%d "$dir"` != `stat -c%d "$dir/.."` ]; then
    echo "$dir is mounted"
else
    echo "$dir is not mounted"
fi

, Когда $dir точка монтирования, она имеет другой номер устройства, чем его родительский каталог.

преимущество по альтернативам, перечисленным до сих пор, - то, что Вы ничего не должны анализировать, и это делает правильную вещь если dir=/some//path/../with///extra/components.

оборотная сторона - то, что это не отмечает / как точку монтирования. Ну, это достаточно легко к особому случаю, но все еще.

20
ответ дан pixelbeat 10 October 2019 в 13:47
поделиться

Используя GNU находят

find <directory> -maxdepth 0 -printf "%D" 

, даст номер устройства каталога. Если это отличается между каталогом и его родителем затем, у Вас есть точка монтирования.

Добавляют/. на имя каталога, если Вы хотите, чтобы символьные ссылки на различные файловые системы рассчитали как точки монтирования (Вы будете всегда хотеть его для родителя).

Недостатки: использование GNU находит так меньше портативного устройства

Преимущества: точки монтирования Отчетов, не зарегистрированные в/etc/mtab.

4
ответ дан Steven Penny 10 October 2019 в 13:47
поделиться
if mount | cut -d ' ' -f 3 | grep '^/mnt/disk 

РЕДАКТИРОВАНИЕ: идея Используемого Мороженого использовать сокращение.

> /dev/null ; then ... fi

РЕДАКТИРОВАНИЕ: идея Используемого Мороженого использовать сокращение.

3
ответ дан haggai_e 10 October 2019 в 13:47
поделиться
for mountedPath in `mount | cut -d ' ' -f 3`; do
    if [ "${mountedPath}" == "${wantedPath}" ]; then
        exit 0
    fi
done
exit 1
2
ответ дан Bombe 10 October 2019 в 13:47
поделиться
df $path_in_question | grep " $path_in_question$"

Это установит $? после завершения.

3
ответ дан Steven Penny 10 October 2019 в 13:47
поделиться

Вот вариант с "df-P", который, как предполагается, является портативным:

mat@owiowi:/tmp$ f(){ df -P  | awk '{ if($6 == "'$1'")print   }' ; }
mat@owiowi:/tmp$ f /
/dev/mapper/lvm0-vol1  20642428  17141492   2452360      88% /
mat@owiowi:/tmp$ f /mnt
mat@owiowi:/tmp$ f /mnt/media
/dev/mapper/lvm0-media  41954040  34509868   7444172      83% /mnt/media
0
ответ дан MatthieuP 10 October 2019 в 13:47
поделиться