Linux: простые способы поиска файлов
Самый простой способ оценить важность задачи выполняемой на компьютере — посчитать сколько программ написано для ее решения. Посчитав различные варианты поиска файлов становится понятно что эта задача важна как для рядовых пользователей так и для администраторов систем под управлением Linux.
[ad#ad-2]
Вариант первый: поиск файлов по имени в заведомо известной директории.
1 2 3 | test@test:~$ ls *search_file* search_file.txt test@test:~$ |
или поиск по всем поддиректориям (исходя из той директории в которой вы находитесь)
1 | test@test:ls */*search_file* |
или же можно объединить поиск
1 2 3 | test@test:ls */*search_file* *search_file* ls: невозможно получить доступ к */*search_file*: Нет такого файла или каталога search_file.txt |
Для некоторых дистрибутивов так же доступна программа slocate. Она создает индекс файлов файловой системы и выполняет поиск по нему.
1 | test@test:slocate search_file |
Вариант второй: Использование команд which и whereis
Программа whereis ищет исполняемые файлы , исходные коды и документацию (man файлы ) для указанной команды. Приэтом поиск происходит только в директориях указанных в переменных окружения. Например:
1 2 | $ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz |
Выполнение этой команды покажет нам где находится исполняемый файл для команды «ls», а так же где находится документация (man файл).
Команда which ищет исполняемый файл команды и только в тех директориях которые указаны в переменной «path» среды окружения. Например
1 2 | $ which vi /usr/bin/vi |
Вариант третий: использование мощного инструмента «find»
Команда «find» мощный инструмент поиска, который в состоянии определить местонахождение файлов на основе собственности, прав доступа, времени последнего доступа, размера, и многого другого. Соответственно и синтаксис команды намного сложнее
1 2 3 4 5 | $ find /etc -name '*.conf' -user cupsys -print find: /etc/ssl/private: Permission denied find: /etc/cups/ssl: Permission denied /etc/cups/cupsd.conf /etc/cups/printers.conf |
В этом примере мы ищем файл с расширением *.conf, которые принадлежат пользователю cupsys и находятся в директории /etc.
В общем случае синтаксис команды find такой
1 | $ find <где ищем > <что ищем> <что делаем с тем что найдено> |
<где ищем > — это простой список директорий, разделенный пробелами, указывающий где искать файл. Далее мы покажем как задать <что ищем>:
1. -name string : поиск файлов в названии которых есть указанная строка. Например: -name ‘*.jpg’
2. -iname string: тоже что и -name но не чувствительно к регистру. Например: -iname ‘*tax*’
3. -user username: указывает файлы какого пользователя искать. Например: -user test
4. -group groupname: указывает на принадлежность файла группе. Например: -group www-data
5. -type x: указывает на тип файла. А именно: f — ищем файл, d — ищем директорию, l — ищем символическую ссылку, b — ищем файл устройства. Например: -type d
6. -size +N: указывает что размер файла должен быть равен или больше указанного значения (используем суффикс c для указания размера в байтах , k в килобайтах, M в мегабайтах). Например: -size +100M
7. -size -N: указывает что размер файла должен быть равен или меньше указанного значения (используем суффикс c для указания размера в байтах , k в килобайтах, M в мегабайтах). Например: -size -50c
8. -mtime -N: указывает что дата последнего изменения фала должна быть меньше чем указанное количество дней. Например: -mtime -1
9. -mtime +N: указывает что дата последнего изменения фала должна быть больше чем указанное количество дней. Например: -mtime +21
10. -perm mode: указывает какими должны быть права доступа к искомому файлу. Например: -perm 644.
<что делаем с тем что найдено> указывает дальнейшие действия с найденными файлами
-print — стандартное решение (дефолтное и может не указываться) — вывод полного пути к файлу.
-ls — вывод всей информации о найденный файлах — аналогично ls -dils
-delete — удалить найденный файлы
А таперь несколько примеров
1 | $ find ~ -name '*.ppt' |
Ищет файлы PowerPoint в домашней директории пользователя
1 | $ find /var -type d -user daemon |
Ищет все директории владельцем которых является пользователь daemon в папке /var
1 | $ find /etc -user cupsys -or -size 0 |
Ищет в папке /etc все файлы владельцем которых является пользователь cupsys или размер которых равен 0 байт
Similar Posts:
2 Responses to Linux: простые способы поиска файлов
Добавить комментарий Отменить ответ
Метки
3D 2010 AMD Android Apple apt-get aptitude CISCO Core cpu D-Link debian ethernet Facebook Firefox FreeBSD Gnome Google hacking IBM Intel IOS Ip iPhone KDE Linux Microsoft Mozilla networking NVidia Radeon Red Hat Samsung Server Twitter Ubuntu USB Windows Windows 7 интернет процессор бизнес безопасность видео сетиСчетчики
Popular Posts
- Windows 7:боремся с ошибкой BOOTMGR is missing
- Windows 7:боремся с ошибкой BOOTMGR is missing (в картинках)
- Linux: Восстанавливаем работу grub после обновления Ubuntu до 10.04
- Windows 7: Возвращаем кнопку выполнить.
- PHP: увеличиваем или уменьшаем количество ресурсов под выполнение скриптов
- Windows: Active@ Boot Disk восстанавливаем MBR
- Ubuntu: Padre, the Perl IDE
- Linux: регулярные выражения в Grep
- IPFire 2.9 Первое знакомство
- CISCO: первая настройка маршрутизатора









Хе-Хе
кому надо что-нибудь найти — обращайтесь — составим вам правильную команду find
Требуется найти все файлы добавленные или измененные 20 августа 2011 — как сделать, подскажите плз?