Почему команда find
не находит файл libhwinfo_cpu.so
?
В процессе работы с командной строкой в Linux пользователи часто сталкиваются с задачей поиска файлов. Команда find
является мощным инструментом для этой цели. Однако, как показывает приведенный пример, могут возникнуть ситуации, когда команда не находит нужный файл, как это произошло с файлом libhwinfo_cpu.so
.
Анализ вывода терминала
Рассмотрим вывод командной строки:
paul@cube:~$ find / libhwinfo_cpu.so
...
/home/paul/hwinfo/build/lib/libhwinfo_cpu.so
...
find: ‘libhwinfo_cpu.so’: No such file or directory
paul@cube:~$ sudo find / -name libhwinfo_cpu.so
find: ‘/run/user/1000/doc’: Permission denied
find: ‘/run/user/1000/gvfs’: Permission denied
/home/paul/hwinfo/build/lib/libhwinfo_cpu.so
На первый взгляд, может показаться, что команда find
не смогла обнаружить файл libhwinfo_cpu.so
, но причина этого заключается в особенностях синтаксиса команды.
Как работает команда find
?
При выполнении первой команды find
, вы указываете два параметра: /
, который обозначает корневую директорию, и libhwinfo_cpu.so
, который интерпретируется как относительный путь. В данном случае, система ищет файл по пути ~/libhwinfo_cpu.so
, то есть в домашней директории пользователя, что в реальности не соответствует существованию файла. Поэтому выводится сообщение об ошибке: "No such file or directory".
Как правильно использовать команду find
?
Во втором вызове команды используется ключ -name
, что изменяет логику поиска. В этом случае /
по-прежнему указывает на корневую директорию, но -name libhwinfo_cpu.so
задает условие для поиска. Это значит, что команда ищет файл по всей файловой системе, и в результате находит его в правильном месте: /home/paul/hwinfo/build/lib/libhwinfo_cpu.so
.
Вывод
Суть проблемы заключается в неправильном указании пути при первом вызове команды find
. Чтобы избежать таких ошибок в будущем, следует тщательно следить за тем, как формулируются команды и какие параметры используются. Помните, что корректное использование ключей, таких как -name
, может значительно облегчить поиск нужных файлов в системе.