Форум русскоязычного сообщества Ubuntu


Автор Тема: Поиск по маске  (Прочитано 6787 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sudo_junior

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Поиск по маске
« : 24 Октября 2015, 15:36:01 »
Всем привет!
я не так давно начал изучать данную операционную систему, поэтому прошу у вас либо практической помощи либо ткните пожалуйста ссылкой. поиск не дал результатов.
вопрос:
какими командами можно осуществить поиск файла по такой маске: a*.txt ? иными словами все текстовые файлы начинающиеся на букву а.

1.через find:~$ find var/aaa/bbb/ -name “a*.txt”
2.через locate не получается. ищет во всех каталогах и только по последней букве a. не знаю как указать любые символы между a и расширением файла:~$ locate *a.txt*
3.через ls+grep ?
4.возможно ли через whereis и which?

Заранее большой респект всем откликнувшимся!  :D)

« Последнее редактирование: 24 Октября 2015, 15:45:12 от sudo_junior »

surfer

  • Гость
Re: Поиск по маске
« Ответ #1 : 24 Октября 2015, 17:08:51 »
 ;)

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Поиск по маске
« Ответ #2 : 24 Октября 2015, 17:11:01 »
В чем проблема с findfind <your_path> -name 'a*.txt'или locatelocate '/<your_path>/a*.txt'или lsls /<your_path>/a*.txt?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн sudo_junior

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Поиск по маске
« Ответ #3 : 25 Октября 2015, 01:20:36 »
с find я разобрался. find работает четко)
сейчас пытаюсь научиться пользоваться другими способами поиска файлов.

создал тестовую папку с файлами. путь и маска чуть другая, но не суть. хочу уловить саму логику.
ввожу в терминал:
locate /var/www/myfiles/ 'r*.txt'
итог: выдает файлы которые содержат букву r не только в начале + файлы которые начинаются на r, но не .txt

http://s011.ЗАПРЕЩЁННЫЙ РЕСУРС/i317/1510/ab/68d2d8e736b6.jpg

с ls вообще отдельна песня. пишет невозможно получить доступ. нет такого файла или каталога.
ls /var/www/myfiles/r*.txt

что я делаю не так?



Пользователь решил продолжить мысль 25 Октября 2015, 01:29:09:
;)

спасибо, но с find я разобрался.

не получается выполнить те же самые действия, только через
locate
и
ls /var/www/myfiles/ | grep <условие>
« Последнее редактирование: 25 Октября 2015, 01:29:09 от sudo_junior »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Поиск по маске
« Ответ #4 : 25 Октября 2015, 13:02:40 »
А пробел зачем вставили между путем и именем? Надо такlocate "/var/www/myfiles/r*.txt"По ls — может действительно нет доступа? Покажитеsudo ls -al /var/www/myfiles/
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Master_Sergius

  • Активист
  • *
  • Сообщений: 528
  • i3
    • Просмотр профиля
Re: Поиск по маске
« Ответ #5 : 25 Октября 2015, 13:31:09 »
все утилиты всё же имеют различие, иначе зачем они все?
1) find - стандартный поиск по файловой системе
2) locate - ищет в базе (или базах), потому поиск быстрый, но не всегда точный (в том смысле, что базы могут быть устаревшими), к примеру вы только что создали файл, а locate его не находит, потому что базы ещё не обновились (можно вручную выполнить updatedb)
3) ls - листинг файлов в директории, применять его для поиска - некое извращение
4) whereis, which - они ищут исполняемые файлы, команды, которые можно найти в списке директорий вашей переменной $PATH
5) рекомендуются маны к прочтению
« Последнее редактирование: 20 Июня 2019, 07:47:12 от zg_nico »
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

 

Страница сгенерирована за 0.03 секунд. Запросов: 23.