Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
Есть пять команд поиска файлов на Linux: whereis, locate, which, type, и find. Каждый из них имеет свои особенности и предназначен для определенных поисковых сценариев. Это руководство познакомит вас с каждой командой и покажет примеры использования. Для дальнейшего чтения любой из этих команд лучше всего просмотреть соответствующую страницу руководства.
whereisКоманда whereisиспользуется для поиска двоичных файлов, исходного кода и онлайн-страниц справочника в нескольких стандартных каталогах установки для любого указанного имени программы.
Поскольку whereisне выполняется поиск в каждом месте вашей системы, любые файлы из этих конкретных каталогов не будут найдены. По той же причине вы быстро получите результаты поиска, независимо от того, найдены они или нет.
Кроме того, он не будет искать те команды, которые встроены непосредственно в оболочку.
Например, если вы хотите найти информацию о lsкоманде, выполните следующую команду на своем терминале:
whereis ls
Вы получите некоторые отзывы, такие как:
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
В результате, /bin/lsэто бинарный файл, который вы хотите найти, два других - man-страницы для lsпрограммы, исходный код для lsпрограммы не найден.
Скопируйте /bin/lsфайл в свой домашний каталог и в /usr/binкаталог, а затем whereisснова введите команду:
cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls
Как видите, только /bin/lsи /usr/bin/lsбыли найдены в результате поиска. lsПрограмма в домашнем каталоге не найден, потому что ваш домашний каталог не один из тех , стандартной установки каталогов.
ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Если вы запустите следующую команду:
whereis cd
Вы увидите вывод, похожий на строку ниже. Не было обнаружено двоичного файла, потому что cdэто встроенная команда оболочки.
cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
locateКоманда locateиспользуется для поиска файлов по имени с помощью базы данных ( /var/lib/mlocate/mlocate.db). Эта база данных является в основном снимком структуры вашей файловой системы. Любые записи в этой базе данных, которые соответствуют вашему запросу, будут перечислены в результатах поиска. По умолчанию locateкоманда будет использовать ваш запрос для сопоставления любой части полного имени каждой записи, включая имя пути. Следовательно, количество найденных файлов в результате поиска может оказаться больше, чем вы ожидаете.
Поскольку база данных устаревает, результат поиска locateкоманды становится менее точным. Вы можете заметить файлы, которые больше не существуют, или вы не увидите совпадений для вновь созданных файлов. По умолчанию mlocate.dbбаза данных автоматически обновляется один раз в день. Вы можете использовать updatedbкоманду, чтобы обновить ее вручную.
Поскольку поиск выполняется по базе данных, а не по файловой системе, скорость поиска очень высокая.
Если вы запустите следующую команду:
locate ls
Вы получите много записей вместо ожидаемого результата.
Чтобы сделать результаты поиска более точными, вы можете использовать -bфлаг, чтобы ограничить диапазон поиска, используя свой запрос, чтобы соответствовать только базовому имени каждой записи:
locate -b "\ls"
На этот раз вы получите местоположение каждого файла, точно вызванного lsв вашей файловой системе:
/bin/ls
whichКоманда whichбудет искать команду, указанную вами в значении переменной среды, PATHи по умолчанию выдаст первый результат. Если вы запрашиваете псевдоним, whichкоманда определит фактическую команду для псевдонима перед выполнением поиска.
Команда whichтакже очень быстрая из-за своей простоты.
Использование whichкоманды просто:
which your_command
Если вы хотите показать все совпавшие команды вместо первой, используйте -aфлаг:
which -a your_command
Вот пример для поиска команды, которая была псевдонимом:
which ll
Результат поиска будет:
alias ll='ls -l --color=auto'
/bin/ls
typeПо умолчанию typeкоманда указывает, как будет интерпретироваться имя команды. Возможные результаты включают псевдоним, ключевое слово, функцию, встроенную функцию или файл. Как и whereisкоманда, typeкоманда будет искать только в нескольких стандартных каталогах установки, чтобы ответить на ваш запрос.
Несколько примеров ввода разных команд:
Встроенная команда оболочки:
type cd
cd is a shell builtin
Бинарный файл в файловой системе:
type sudo
sudo is /usr/bin/sudo
Псевдоним:
type ls
ls is aliased to `ls --color=auto'
findСреди пяти команд поиска файлов, представленных в этом руководстве, эта findкоманда является самой мощной. Это также самый медленный. В отличие от других четырех команд, findкоманда фактически будет искать ваш файл во всей файловой системе, один i-узел за одним i-узлом. С помощью findкоманды вы можете использовать сложные критерии запроса, чтобы найти каждый файл, который вам нужен, даже дополнительно выполнить действия с найденными файлами.
Критерии поиска для findкоманды слишком сложны, чтобы их можно было объяснить в такой короткой статье, а здесь несколько примеров.
Базовый формат findкоманды:
find [path] [option] [action]
Чтобы найти все файлы в рабочем каталоге и всех его подкаталогах:
find
Чтобы найти файл с именем aaaв вашем домашнем каталоге и во всех его подкаталогах:
find ~ -name 'aaa'
Чтобы найти все файлы в файловой системе, которые были изменены за последние 24 часа:
find / -mtime 0
Чтобы найти все файлы в веб-каталоге и все его подкаталоги, принадлежащие пользователю nginx:
find /usr/share/nginx/html/ -user nginx
Чтобы найти все файлы в рабочем каталоге с правами доступа 0744:
find -perm -0744
Чтобы найти файл с именем aaaв рабочем каталоге и вывести его подробную информацию:
find -name 'aaa' -exec ls -l {} \;
Изучение 26 методов анализа больших данных: часть 1
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше