Пошук файлів і каталогів порівняно простий за допомогою сучасних пошукових систем, інтегрованих у файлові менеджери, але іноді нам може сподобатися використовувати термінал більше, або у нас може не залишитися іншого вибору, крім використання терміналу, оскільки у нас немає графічного середовища. Так, Мені було цікаво переглянути знахідку, добре відома команда, але щось забуте масовим використанням графічних середовищ.
Ну, знайти, як випливає з назви, ні до чого, крім щоб знайти файли, хоча у нього є й інші альтернативи, такі як locate тощо, ми зосередимося на пошуку, оскільки він є досить потужним і дає нам багато цікавих варіантів для успішного пошуку. Якщо ми використовуємо його як є, без будь-якої опції, він буде запускати список, подібний до того, який ми отримали б за допомогою ls, вмісту цілого каталогу (та підкаталогів).
Але це не те, що нас цікавить, що ми хочемо, це налаштувати та вдосконалити ще трохи пошук буде точнішим і допоможе нам знайти те, що насправді шукаємо. Щоб зрозуміти, як це працює, я думаю, що немає кращого способу, ніж показати практичні приклади пошуку:
- Шукати по імені, ми можемо використовувати опцію або критерії пошуку «-назви». Наприклад, перший приклад шукає файли / каталоги з іменем, що починається на "musi", другий, який закінчується на "eon", і останній, що містить слово "знайдено" всередині кореневого каталогу / каталогу:
find / -name "musi*" find / -name "*eon" find / -name "fundar"
- Існує опція -type, яка може служити фільтром і може використовуватися разом із -name. У цьому випадку це служить укажіть тип файлу для пошуку. За допомогою B ми шукаємо спеціальні файли в блочному режимі, C - для спеціальних файлів у символьному режимі, D - для каталогів, F - для звичайних файлів, L - для символічних посилань, P - для іменованої труби та S - для Socket або мережевого підключення. Наприклад, припустимо, ви хочете шукати каталог, який має кінець "привіт" в кінці свого імені та в каталозі Home / user:
find /Home/usuario -name "*hola" -type D
- Ми також можемо пошук за користувачем або групою, до якої він належить каталог або файли в системі. Для цього ми можемо використовувати критерії -user та -group. А тепер уявіть, що ви хочете знайти файл, який містить «.mp3» користувача «Rosa» та групи «Кішки» в каталозі Завантаження:
find /Descargas -name ".mp3" -user Rosa -group Gatos
- Розмір може допомогти нам шукати за розміром. У цьому випадку ми маємо різні варіанти застосування. A B вказує на блок, якщо розмір не вказаний, за замовчуванням це буде 512 байт. C для 1-байтових символів ASCII, W для 2-байтових (старих) слів і K для кілобайт або 1024 байт. Наприклад, якщо ми хочемо шукати у / для файлу 2560 байт (5 блоків · 512), ще один із 10 символів ASCII, інший - 100 КБ, один - менше 5 МБ і інший - більше 30 КБ:
find / -size 5 find / -size 10c find / -size 100K find / -size -5000K find / -size +30K
Звичайно, -размір буде поєднується з усіма критеріями пошуку передній і задній, таким чином ми отримаємо ще більш точні результати ...
- Можна навіть пошук за часовими критеріями. За допомогою -atime ви можете шукати за датою останнього доступу. -mtime за датою модифікації вмісту та -ctime за датою останньої модифікації inode. Наприклад, ми хочемо здійснити пошук в / Home, в каталозі під назвою "hello", що належить користувачеві "Zaca" і який був змінений менше 3 днів тому:
find /Home -name "hola" -user Zaca -mtime -3
- Критеріїв більше пошук, такий як -perm для пошуку дозволів доступу або дозволів, -посилання для пошуку жорстких посилань, -inum для номера inode. Давайте підемо з нашим останнім прикладом, у цьому випадку ми будемо шукати каталог у поточному каталозі, дозволи якого є загальним для власника користувача та групи, і виконання для решти:
find -type d -perm 771
Іноді ми не підозрюємо про потенціал терміналу і використовуємо інші інструменти, які можуть не дозволити гнучкості того, що вже є вродженим. Тож я сподіваюся, що я чомусь допоміг цій скромній статті. Веселіться та залишайте свої коментарі...
Мене це не розважає, але це мені трохи допомогло