В большинстве современных систем GNU команда mount
может справиться с этим:
mount -o loop file.iso /mnt/dir
для размонтирования вы можете просто использовать umount
команда
umount /mnt/dir
Если в вашей ОС нет этой опции, вы можете создать петлевое устройство :
losetup -f # this will print the first available loop device ex:/dev/loop0
losetup /dev/loop0 /path/file.iso #associate loop0 with the specified file
mount /dev/loop0 /mnt/dir #It may be necessary specify the type (-t iso9660)
для размонтирования, вы можете использовать -d
:
umount /mnt/dir
losetup -d /dev/loop0
Если файл имеет разделы, например HD-образ, вы можете использовать параметр -P
(в зависимости от вашей ОС), он отобразит разделы в содержимом файла:
losetup -P /dev/loop0 /path/file.iso # will create /dev/loop0
ls /dev/loop0p* #the partitions in the format /dev/loop0pX
Это настоящая ошибка, обнаруженная в find версии 4.4.2, но ошибка была исправлена в find версии 4.6.0.
Учитывая вышеизложенные выводы, в качестве обходного пути вы можете попытаться либо ограничить поиск до / usr
sudo find /usr -iname 'firefox_binary.py'
, либо пропустить / sys
одним из следующих способов, в зависимости от вашего варианта использования. :
sudo find / -mount -iname 'firefox_binary.py'
sudo find / -not -path '/sys/*' -iname 'firefox_binary.py'
Другой, но ИМХО более уродливый обходной путь - это попытаться запустить создание проблемных каталогов перед поиском, например. грамм. с
ls /sys/kernel/debug/tracing/options
или
cat /sys/kernel/debug/tracing/options/<some_file>
или как угодно.
Я также предлагаю вам отправить отчет об ошибке разработчикам вашего find
(возможно, busybox или findutils ). Я думаю, что find
не должен просто выходить из рекурсии в этом случае, и, по крайней мере, не должен без сообщения об ошибке.