Пошук даних в linux

Пошук файлів і папок (Find, Locate, Grep)

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

Пошук даних.

У процесі роботи у нас часто виникає необхідність знайти що-небудь в файлі - це може бути лог файл, наприклад поштового агента postfix. Для цих цілей можна скористатися командою grep

приклад:
# Grep blocked maillog

В даному прикладі ми вивели всі повідомлення зі статусом blocked.

Тут виводиться номер рядка
# Grep -n ty file
3: ty
4: ty
6: ty

Всього рядків з збігами
grep -c ty file
3

Параметр -e задає кілька шаблонів для пошуку
# Grep -e шаблон_1 -e шаблон_2 file

Пошук в файлової системі.

Ця команда шукає по імені файлу і переглядає ті директорії, які ви задасте для пошуку в даному випадку вона іще в усіх каталогах
# Find / -name file
/ Var / log / file
/usr/lib/perl5/vendor_perl/5.8.8/URI/file
/ Usr / bin / file
/ Usr / share / file

Тут виводиться весь список зі збігом слова file
#find / -name "* file *" -print
.bash_profile
metafiles

У команди find безліч всяких корисних ключів:

# Find -mtime -1 Пошуку файлу зі змінами менше ніж 1 день (+1 - більше)
-size n - розмір файлу
# Find / -size -50k Шукає файли менше 50 кб
# Find / -size + 50M Шукає більше 50 мб
# Find. -perm 755 - шукає файли з правами доступу 755
# Find -user root - пошук файлів належать користувачу

На відміну від команди find, locate здійснює пошук на багато швидше, за рахунок наявності свій бази, яка оновлюється щоночі

# Locate file
/ Var / named / chroot / var / named / chroot / proc / sys / fs / file-max
/ Var / named / chroot / var / named / chroot / proc / sys / fs / file-nr

Схожі статті