Пошук даних в 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