Простая команда поиска не запустится

Простая команда поиска не запустится

Я новичок в Linux и сейчас пытаюсь выполнить следующую команду:

find ~ -name apt.no

Я ищу apt.noв другом каталоге, указанном как montrose-files.

Нет ответа от оболочки, и она просто создает новую строку. Может ли кто-нибудь объяснить мне, почему это не дает даже результата?

bbcharlieca@myvm:~$ find ~ -name apt.no
bbcharlieca@myvm:~$ █

введите описание изображения здесь

решение1

Ваша команда find ~ -name apt.noищет файл или каталог * , называемый apt.noв вашем $HOMEкаталоге и во всех каталогах, вложенных в него. ( ~Представляет ваш собственный домашний каталог.)

Если он не montrose-filesнаходится в вашем домашнем каталоге, он не будет найден, и целевой файл не будет найден. Например, если montrose-filesон находится в другом пути, вам нужно будет указать этот путь:

find /path/to/montrose-files -name 'apt.no' -print

Сбивает с толку, если вы ранее создали символическую ссылку montrose-filesв вашем домашнем каталоге, которая также не будет искаться, так как findпо умолчанию не следует за символическими ссылками. Вы можете решить эту проблему одним из двух способов:

find ~ -follow -name 'apt.no' -print
find ~/montrose-files/ -name 'apt.no' -print

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

Во втором подходе мы заставляем символическую ссылку указывать на реальный целевой каталог, добавляя завершающий слеш.

Наконец, обратите внимание, что во всех случаях я заключал в кавычки имя файла, который ищу. В вашем простом случае это не будет иметь никакого значения, но когда вы начнете использовать подстановочные знаки для сопоставления неизвестных частей имен файлов (например, apt.*), вам следует использовать одинарные кавычки, чтобы гарантировать, что подстановочные знаки не будут обработаны оболочкой до того, как она findсможет их получить). Хорошей идеей будет выработать привычку заключать аргументы в кавычки.


* Технически, он будет соответствовать любому элементу, но вряд ли в вашем домашнем каталоге будут каналы, сокеты или узлы устройств.

Связанный контент