В този пост ще разгледаме Linux find
команда и как да търсите и намирате файлове с различни атрибути.
Linux find
command е вграден мощен инструмент, който може да се използва за намиране и управление на файлове и директории въз основа на широк спектър от критерии за търсене.
Например, можем да намерим файлове по тяхното име, разширение, размер, разрешения и др. Можем също да използваме find
команда за търсене на определен текст във файл, на който не знаем името.
Нека да видим как се използва find
команда с примери:
Ако знаете името на файл, но не можете да си спомните директорията, в която се намира, можете да използвате следната команда от главната директория:
find . -name sales.csv
Примерен изход:
./accounts/sales.csv
Ако искате да търсите конкретни файлове в дадена директория, можем да използваме:
find ./test -name testCases*
Примерен изход:
./test/testCases10.txt ./test/testCasesPassed.txt ./test/testCasesFailed.log
В горния случай търсим само в директорията „./test“.
За търсене и намиране на файлове с определено разширение използваме:
find . -name *.jpg
Примерен изход:
./test/results/failedTests.jpg ./test/project.jpg ./home/profile_pic.jpg ./tmp/cute-cats.jpg
За да намерим само файлове, трябва да използваме -f
опция:
find ./ -type f -name 'results*'
Примерен изход:
./test/results_latest.log ./test/results_archive.pdf
За да намерим само директории, трябва да използваме -d
опция:
find ./ -type d -name 'results*'
Примерен изход:
./test/results
Ако искате да търсите и изброявате всички файлове с дадено име в множество директории, можете или да започнете търсенето в основната папка, или ако познавате директориите, можете да ги посочите.
Пример:
find ./test ./logs -name failed*.* -type f
Примерен изход:
./test/failed_tests.txt ./logs/failed_tests.log
Понякога искате да намерите файл и не знаете името му, но знаете, че в него има определен текст.
Можеш да използваш:
find ./test -type f -exec grep -l -i 'login_scenarios' {} ;
Тук, -i
опцията се използва за игнориране на регистъра, така че Login_Scenarios и login_scenarios ще бъдат намерени.
Можем дори да намираме файлове с различни размери. Опциите за размер са:
c
байтаk
килобайтаM
МегабайтаG
ГигабайтаНапример за намиране на файлове с точен размер, който използваме:
find / -size 10M
И за да намерим файлове, които са по-големи от определен размер, използваме:
find ./test -size +2M
Горното ще намери всички файлове, които са по-големи от 2 MB в папката ./test.
За да намерим и изтрием конкретни файлове, които използваме:
find . -type f -name 'temp*' -exec rm {} ;
В тази статия научихте как да използвате командата linux find за търсене на файлове въз основа на име, разширение, размер и тип.