Вы должны использовать круглые скобки, поскольку они имеют более высокий приоритет, чем -a
:
find . \( -name afile -o -name bfile \) -a -print
/ etc / mtab, / proc / mounts и т. Д. Не отображают путь к исходному файлу. Команда
mount выполняет и форматирует вывод.
Таким образом, вы можете попытаться:
mount | egrep "${file_path=} on /"
export file_path="/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso"
mount | egrep "${file_path=} on /"
/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso on /mnt/pc75 type iso9660 (ro,relatime)
В отличие от
mount | grep debian
/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso on /mnt/pc75 type iso9660 (ro,relatime)
/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso_somethingelse on /mnt/projekte type iso9660 (ro,relatime)
Риск ошибки намного меньше. Можно также попытаться сопоставить шаблон остальной линии с регулярным выражением.
Вы можете обратиться к файлу / proc / self / mounts
(или / proc / mounts
) в эти файловые пространства кодируются с использованием \ 040 (восьмеричное значение):
Пример, / dev / sda1
монтируется в / mnt / mount sda1
grep '/dev/sda1' /proc/mounts | cut -d ' ' -f 2
Возврат: / mnt / mount \ 040sda1
grep "$(echo '/mnt/mount sda1' | sed 's/ /\\\\040/g')" /proc/mounts | cut -d ' ' -f 1
Возврат: / dev / sda1