Поиск в Ubuntu Linux


поиск в ubuntu linux

Проблема с поиском нужных файлов или папок была, есть, и будет актуальна всегда. Люди постоянно забывают, куда именно они сохранили нужный файл Хрень.doc, или Супер-музня.mp3. Поэтому независимо от вашей операционной системы, поиск файлов или директорий, будет всегда востребован хоть на Linux, на Windows, или MacOS X. Просто инструменты поиска будут разные. Поиск в Linux можно разделить на две категории: графический и консольный. Начнем с гордости всех луниксоидов — с Терминала. Для поиска в Linux есть замечательная программа , под названием find.
Формат написания команды find:
find путь к директории, в которой нужно сделать поиск -опции(ключи)
где  путь – это каталог, в котором произвести поиск. Можно указывать следующие пути:

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

Итак, самые главные опции команды find выглядят так:
name         —  поиск файлов по имени;
user           —  поиск файлов, которые принадлежат указанному пользователю;
group        —  поиск файлов, которые принадлежат указанной группе;
perm         —  поиск файлов с указанным режимом доступа;
type          —  поиск файлов какого-нибудь типа.

Типов тоже достаточно:

  • b  – специальный блочный файл;
  • d  – каталог;
  • c  – специальный символьный файл;
  • f   – обычный файл;
  • l   – символическая ссылка;
  • p  – именованный канал;
  • s  – сокет.

-size  n       —  поиск файлов, размер которого равен n единиц;
-mtime  -n +n   – поиск файлов, которые изменяли свое содержание меньше чем (-) либо больше чем (+) дней назад.

 



поиск в убунту

 

А теперь несколько примеров применения команды find.
Самой применяемой опцией является -name, которая ищет файлы по имени.
Например, команда:

find ~ Music -name '*.mp3'

произведет поиск всех файлов (символ *), которые имеют расширение .mp3 в папке Music, которая находится в вашей Домашней директории.

find / -name '*.pdf'

Данная команда произведет поиск файлов с расширением .pdf во всех каталогах, куда вам разрешен доступ. Если программа не может зайти в некоторые системные каталоги, то она вас об этом предупредит. А если вам все таки нужно просмотреть полностью все каталоги, тогда используйте права Суперпользователя:

sudo find / -name '*.pdf'

Команда

find ~ -name 'Foto*'

выведет список файлов домашнего каталога, начинающихся с букв Foto.

Ключ `-name’ различает большие и маленькие буквы; для того чтобы во время поиска не обращать внимание на эти критерии, нужно использовать опцию ‘-iname’. Тогда программа найдет все файлы, которые будут состоять из букв: Foto, foto или FOTO.

Если хотите, чтобы результат поиска был сохранен в текстовый файл, то команда примет следующий вид:

find ~ -name 'Foto*' > results.txt

Если вам известно полное имя файла, тогда команда будет следующая:

find / -name .profile

В данном случае будет произведен поиск скрытого файла .profile во всей системе.

Можно произвести поиск файла если известна часть его имени. В таком случае команда будет такой:

find /home/dm/Музыка/Клипы/ -name "*uniform*"

Если вы хотите найти файлы, которые начинаются с каких-то определенных букв (например, от a до c),  то в таком случае лучше применить регулярные выражения, которые очень удобны в работе:

find  / -name '[a-c]*'

Данная команда сможет найти все файлы вашей системы, которые начинаются с букв от a до c.

Поиск файлов с определенными режимами доступа

Если вы захотите отыскать файлы, которые имеют определенные режимы доступа, то помочь вам в этом сможет опция -perm. Например, найдем файлы, у которых режим доступа равен 775, и находятся в текущем каталоге:

find .  -perm 775

Поиск файлов по пользователю, либо группе.

Чтобы найти файл, который принадлежит определенному пользователю достаточно выполнить следующую команду:

find / -user comp

Эта команда найдет файлы в системе, которые принадлежат пользователю comp.
А для того, чтобы найти файлы, которые принадлежат какой-то определенной группе (например group2), выполним команду:

find / -group group2

Чтобы найти файлы несуществующих пользователей либо групп, нужно использовать опции -nouser  и -nogroup:

find / -nouser

и

find / -nogroup

Поиск файлов определенного типа

У команды find есть еще одна полезная возможность, можно найти файлы определенного типа. Для этого применим ключ -type. Найдем символические ссылки в каталоге /etc:

find /etc -type l

Найдем список каталогов, которые присутствуют в папке /mnt/raid

find /mnt/raid -type d

Поиск файлов по размеру.

Ключ -size дает возможность найти файлы нужного вам размера.

find . -size 2000k

Данная команда найдет и покажет на экране файлы,  размер которых равен 2 мегабайта, и которые находятся в текущем каталоге. А если например нужно отыскать файлы размером менее 500 килобайт, то в таком случае команда будет такой:

find . -size -500k

Если вам нужно отыскать файлы с размером более 900 мегабайт, то команда будет следующей:

find / -size +900M

Поиск файлов с использованием ключа -mtime

Ключ -mtime дает возможность вам отыскать файлы, которые изменялись в какой-то определенный срок времени.
Например, у нас есть задача найти файлы, которые находятся в папке /home/dm/Video , и которые изменялись за последние 10 дней.

find /home/dm/Video -mtime +10

Если вам нужно наоборот, например, найти файлы, которые не изменялись неделю, тогда команда будет следующей:

find /home/dm/Video  -7

В следующей статье я напишу о графических инструментах поиска в Ubuntu Linux.

Всем удачи!


Поиск в Ubuntu Linux: 11 комментариев

    1. Я, конечно, некропостер, но все-таки объясню, зачем надо знать консольную команду.
      *unix-системы, как мне кажется, в 90% используются на серверах. А на серверах обычно не стоит графический интерфейс (иксы, etc) и доступ к серверам обычно через ssh, а там нет графического интерфейса. И что вы будете делать? Полезете в гугл искать и наткнетесь на эту статью и спасибо скажете =)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *