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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Поиск директорий в терминале  (Прочитано 4017 раз)

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

Оффлайн neon1ks

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1183
    • Просмотр профиля
    • Блог молодого разработчика
Хочу найти все директории где лежат картинки в jpeg.

Командой find можно найти файл, можно ли сделать, чтобы отображались не сами файлы, а только директории где они лежать?

symon2014

  • Гость
Re: Поиск директорий в терминале
« Ответ #1 : 18 Мая 2015, 21:57:32 »
locate .jpeg

Оффлайн neon1ks

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1183
    • Просмотр профиля
    • Блог молодого разработчика
Re: Поиск директорий в терминале
« Ответ #2 : 18 Мая 2015, 22:01:51 »
symon2014,
Выводит список самих файлов, а мне нужен списко директорий где они находятся.

В grep есть такая опция - выводить имена файлов, где находится фраза, которую ищем.

symon2014

  • Гость
Re: Поиск директорий в терминале
« Ответ #3 : 18 Мая 2015, 22:06:29 »
Директория - это путь к файлу? Не?
(Нажмите, чтобы показать/скрыть)
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 18 Мая 2015, 22:11:47 от symon2014 »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Поиск директорий в терминале
« Ответ #4 : 18 Мая 2015, 22:13:57 »
neon1ks, оно?$ dirname /home/alsoijw/1.py
/home/alsoijw
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн neon1ks

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1183
    • Просмотр профиля
    • Блог молодого разработчика
Re: Поиск директорий в терминале
« Ответ #5 : 18 Мая 2015, 22:14:56 »
symon2014,
например,

/home/user/XP/ubuntu/www/img/1.jpeg
/home/user/XP/ubuntu/www/img/2.jpeg
/home/user/XP/ubuntu/www/img/3.jpeg
/home/user/XP/ubuntu/www/img/i.jpeg

Команда поиска должна показать только путь
/home/user/XP/ubuntu/www/img/

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Поиск директорий в терминале
« Ответ #6 : 18 Мая 2015, 22:16:10 »
symon2014, whereis и which не подходят, так как отображают только бинарники.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

аспирин

  • Гость
Re: Поиск директорий в терминале
« Ответ #7 : 18 Мая 2015, 22:23:30 »
neon1ks,
Код: (xml) [Выделить]
find / -xdev -name "*.jpeg"

Оффлайн neon1ks

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1183
    • Просмотр профиля
    • Блог молодого разработчика
Re: Поиск директорий в терминале
« Ответ #8 : 18 Мая 2015, 22:40:47 »
аспирин,
Сам проверял команду?

В общем выполнил
Код: (bash) [Выделить]
find ./ -name *.jpg > pic.txt
Затем написал скрипт, надеюсь без ошибок
(Нажмите, чтобы показать/скрыть)

Но меня интересует вопрос: неужели нет никакого ключика - выводить только директории где лежат файлы?
« Последнее редактирование: 18 Мая 2015, 22:54:59 от neon1ks »

аспирин

  • Гость
Re: Поиск директорий в терминале
« Ответ #9 : 18 Мая 2015, 22:43:53 »
neon1ks,
jpeg же....

Оффлайн neon1ks

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1183
    • Просмотр профиля
    • Блог молодого разработчика
Re: Поиск директорий в терминале
« Ответ #10 : 18 Мая 2015, 22:53:11 »
аспирин,
Можно тогда выполнить команду
find . -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" > pic.txt
Найдет все картинки в основных расширениях и запишит в файл pic.txt. https://ru.wikipedia.org/wiki/Find

аспирин

  • Гость
Re: Поиск директорий в терминале
« Ответ #11 : 18 Мая 2015, 22:56:52 »
neon1ks,
Вариантов масса , надо искать....

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн neon1ks

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1183
    • Просмотр профиля
    • Блог молодого разработчика
Re: Поиск директорий в терминале
« Ответ #13 : 18 Мая 2015, 23:05:49 »
Phlya,
dirname $(locate *.jpg)
bash: /usr/bin/dirname: Слишком длинный список аргументов

Потерял папку с фотографиями. А на моем ноуте более более 200000 картинок.
Поэтому обычные команды поиска не подходят.

В общем, свою задачу я уже решил.

Но, как писал выше, меня все еще интересует вопрос: "неужели нет никакого команды или ключика - выводить только директории где лежат файлы, а не сами пути файлов?"

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Поиск директорий в терминале
« Ответ #14 : 18 Мая 2015, 23:07:25 »
locate *.jpg | xargs dirnameВот еще вариант.

200'000??? Жесть какая.

Пользователь решил продолжить мысль [time]19 Май 2015, 00:09:34[/time]:
Я так думаю, что этот способ должен сработать - по идее, через пайпы построчно ведь передается, так что список будет всегда короткий.

Пользователь решил продолжить мысль 18 Мая 2015, 23:10:44:
Да, у меня не было проблем с locate * | xargs dirname из домашней директории.
« Последнее редактирование: 18 Мая 2015, 23:10:44 от Phlya »
Ubuntu 14.04 (Unity), MSI GE40

 

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