Как найти файл на жестком диске?

Ответы:

157

Простое find / -type f -name ""поможет, если вы знаете точное имя файла.

find / -type f -iname "filename*" если вы хотите сопоставить больше файлов (игнорируйте регистр).

Избегайте -typeопций, если вы хотите искать каталоги и т. Д. См. Руководство по поиску для получения дополнительной информации. Чтобы увидеть руководство, введите команду:

man find

sagarchalise
источник
Черт, я был всего на несколько секунд медленнее: P Отредактирую его, чтобы просто показать команду locate.
Нитин Венкатеш
2
Это также будет искать все подключенные устройства, возможно, захотите просто искать/mount/hddyouwanttosearch
Callum Rogers
Стоит отметить, что поиск действительно медленный, по сравнению с индексированной поисковой системой, такой как locate (но также и более мощная)
перекидывание
49

Вы также можете использовать locateдля поиска команд. Почему люди используют locate, если find выполняет работу? Потому что поиск гораздо быстрее, чем поиск, поскольку он просто ищет в базе (-ах) проиндексированных расположений, чтобы найти ваш файл / регулярное выражение.

Примеры:

locate some-file.avi выполняет поиск в базе данных практически всех файлов на диске для поиска файла с именем "some-file.avi".

locate -i "some-file.avi" будет игнорировать регистр файла, который вы ищете.

locate -i "*.txt" отобразит список местоположений всех файлов с расширением **. txt * в вашей системе.

man locate для получения дополнительной информации о файле.

Вам может понадобиться updatedbсначала запустить, чтобы убедиться, что база данных индекса обновлена, иначе «locate» может не вернуть то, что вы ищете.

Нитин Венкатеш
источник
Обратите внимание, что updatedbдолжен быть запущен от имени пользователя root.
Rafał Cieślak
5
это ПУТЬ быстрее, чем найти \ святая корова ... спасибо!
anon58192932
Если по умолчанию updatedbдобавляется /в индекс, как он может быть быстрее find /?
Хашим
14

Начните с нажатия на значок «Домашняя папка» в панели запуска.

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

В открывшемся окне нажмите «Поиск».

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

Введите в поле то, что вы хотите найти, затем нажмите ввод. введите описание изображения здесь

Под раскрывающимся списком местоположения выберите жесткий диск и нажмите «Перезагрузить».

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

Результаты будут отображены. Надеюсь, это поможет!

Уильям
источник
3
Человек, который спросил это, утверждает, что использует сервер, поэтому нет графического интерфейса. Но это отличный ответ в любом случае!
Rafał Cieślak
8

Если вы ищете строку внутри файла, вы можете использовать grep. Вот пример команды:

grep -r -i "some string" /home/yourusername

Это найдет "some string"в /home/yourusernameкаталоге. Поиск будет игнорировать case ( -i) и recurse каталогов ( -r). Вы можете использовать /в качестве каталога для поиска во всем каталоге, но это может быть не очень эффективно.

recluze
источник
5

В Ubuntu я знаю, что все хотят быть догматичными по поводу использования командной строки все время, и раньше я так и делал, но мне нравится инструмент Gnome «Поиск файлов ...». Я думаю, что это круто.

djangofan
источник
3
ну я на сервере
Бланкмен
Тогда попробуйте поискать в KDE. Это намного лучше, чем гном. Я все еще жду, когда Наутилус догонит универсальность поисковой системы KDE. Дельфин / Konqueror намного лучше из-за этого.
Луис Альварадо
Да, я думал о переходе на Kubuntu на самом деле. Я посмотрю на это.
Джангофан
3

Для настройки рабочего стола установите «gnome-search-tool»
sudo apt-get install gnome-search-tool

Не устанавливайте это на сервер, он также установит пакет рабочего стола Ubuntu.
Спасибо @Rinzwind за указание на это.

Фильтры включают:

  1. Выберите папку, которую вы хотите найти. В этом случае\
  2. Содержит текст - это имя файла.
  3. Дата изменения - меньше или больше, чем в количестве дней.
  4. Размер файла - не менее или не более указанного размера. Вы также можете искать пустые файлы.
  5. Владелец файла - пользователь, группа или нераспознанный владелец.
  6. Регулярные выражения - соответствует регулярным выражениям.
  7. Вы можете выбрать отображение скрытых файлов, переход по символическим ссылкам или исключение других файловых систем.

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

Parto
источник
@Rinzwind Вопрос был в Trying to locate a file, how can I search the entire hard drive for a file?том, что нигде нет «установки сервера» ...
Parto
@Rinzwind Хахах. Хороший. Позвольте мне отредактировать мой ответ и сказать, что это только для настройки рабочего стола.
Parto
воздаю взамен :)
Rinzwind
2

Если вы не хотите запоминать find(это очень мощный) параметры, вы можете установить их из официальных репозиториев:

  • kfind - утилита поиска файлов
  • gnome-search-tool - инструмент для поиска файлов в GNOME
  • catfish - инструмент для поиска файлов, который настраивается через командную строку

Все трое великолепны, но я нашел kfind лучшим.

Из справочной вики сообщества Ubuntu вы можете найти полезную информацию:

  • dpkg -L | --listfiles ... Вывести список файлов, "принадлежащих" пакетам.
  • dpkg -S | --search ... Поиск пакетов, владеющих файлами.
pabloab
источник
1

Если нужно найти вложенные в некоторые каталоги:

find / -type f -wholename "*foo/bar/filename"
Андрей
источник