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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: синтаксис ls (man читал :-( !!! )  (Прочитано 1647 раз)

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

Оффлайн kosta726

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
синтаксис ls (man читал :-( !!! )
« : 18 Июля 2015, 19:27:08 »
Раскройте, пожалуйста, кто знает, страшную тайну команды ls !
понадобилось вывести названия всех *.h  файлов, которые находятся внутри некоего каталога и в его подкаталогах. Глубина вложения подкаталогов до 5 в разных ветвях дерева. Все, что смог из себя выдавить это
ls ./*.h ./*/*.h ./*/*/*.h ./*/*/*/*.h ./*/*/*/*/*.h ./*/*/*/*/*/*.h
Цель достигнута, но это же неправильно! должен же быть универсальный синтаксис для этого случая! Из спортивного интереса пытался искать - безуспешно. Подскажите, пожалуйста!

Оффлайн skybour

  • Старожил
  • *
  • Сообщений: 2207
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #1 : 18 Июля 2015, 19:44:35 »
Объедини с grep.

Оффлайн jura12

  • Старожил
  • *
  • Сообщений: 1472
  • 24.04 lubuntu
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #2 : 18 Июля 2015, 19:49:02 »
помойму используется связка find xargs. типа этого find ~/public_html/sites/all -name "*.h" -type f | xargs ls
« Последнее редактирование: 18 Июля 2015, 19:58:23 от jura12 »
сопротивление бесполезно

Оффлайн it0r

  • Забанен
  • Старожил
  • *
  • Сообщений: 2264
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #3 : 18 Июля 2015, 19:52:54 »
ls -la */ | grep *.h - не работает...
если в кратком формате - без "-la"
« Последнее редактирование: 18 Июля 2015, 19:58:33 от it0r »
ТУТ - это дерево. А ЗДЕСЬ - это МЕСТО.... Так что ТУТ - это не ЗДЕСЬ.

Оффлайн kosta726

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #4 : 18 Июля 2015, 19:56:16 »
Спасибо за ответы.
Но мне стало просто интересно, неужели такой простой критерий не описывается shell patterns? Собственно в этом мой вопрос - можно ли именно через shell patterns описать "все файлы с расширением h и находящиеся во всех низлежащих каталогах" ? ну и если да - то как!

Оффлайн skybour

  • Старожил
  • *
  • Сообщений: 2207
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #5 : 18 Июля 2015, 20:03:04 »
А что
ls -R ./*.hне работает?

Оффлайн it0r

  • Забанен
  • Старожил
  • *
  • Сообщений: 2264
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #6 : 18 Июля 2015, 20:04:26 »
grep *.h - не работает...

хм... без "*" работает: ls -la */ | grep .h

Пользователь решил продолжить мысль 18 Июля 2015, 20:06:50:
А что
ls -R ./*.hне работает?

нет
« Последнее редактирование: 18 Июля 2015, 20:06:50 от it0r »
ТУТ - это дерево. А ЗДЕСЬ - это МЕСТО.... Так что ТУТ - это не ЗДЕСЬ.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #7 : 18 Июля 2015, 20:06:50 »
skybour, it0r, где ограничение рекурсии?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн it0r

  • Забанен
  • Старожил
  • *
  • Сообщений: 2264
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #8 : 18 Июля 2015, 20:08:45 »
skybour, it0r, где ограничение рекурсии?
с этим, к сожалению, пока не знаком... а вот это: ls -la */ | grep .h - работает
ТУТ - это дерево. А ЗДЕСЬ - это МЕСТО.... Так что ТУТ - это не ЗДЕСЬ.

Оффлайн skybour

  • Старожил
  • *
  • Сообщений: 2207
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #9 : 18 Июля 2015, 20:10:17 »
alsoijw, так добавь, не на уроке же.

Онлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 5698
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #10 : 18 Июля 2015, 20:21:48 »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #11 : 18 Июля 2015, 20:34:39 »
it0r, skybour, я думал как сделать... Похоже придумал.
Код: (bash) [Выделить]
find -maxdepth 5 -type f | grep "\.h\b"Вроде как отстрелить так ногу нельзя... Даже короче получилось :)
Код: (bash) [Выделить]
ls ./*.h ./*/*.h ./*/*/*.h ./*/*/*/*.h ./*/*/*/*/*.h ./*/*/*/*/*/*.hit0r, символ "." очень хорошо экранировать
F12, и где там про глубину?

Пользователь решил продолжить мысль 18 Июля 2015, 20:49:45:
Или на 3 символа короче
Код: (bash) [Выделить]
find ~ -maxdepth 5 -name "*.h" -type f
« Последнее редактирование: 18 Июля 2015, 20:49:45 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн it0r

  • Забанен
  • Старожил
  • *
  • Сообщений: 2264
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #12 : 18 Июля 2015, 20:52:50 »
дойду когда-нить и до этого:
(Нажмите, чтобы показать/скрыть)
просто автор спрашивал конкретно про ls.

alsoijw скажи плиз, в моей команде что то не то?  :)
ТУТ - это дерево. А ЗДЕСЬ - это МЕСТО.... Так что ТУТ - это не ЗДЕСЬ.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #13 : 18 Июля 2015, 20:58:58 »
find . -type f | grep "\.h$"
Wars ~.o

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: синтаксис ls (man читал :-( !!! )
« Ответ #14 : 18 Июля 2015, 21:13:43 »
grep *.h - не работает...

хм... без "*" работает: ls -la */ | grep .h
Цитировать
echo -e "1.h\n2rh\n3.h5" | grep ".h"
1.h
2rh
3.h5
Для предотвращения "2rh" нужно экранировать точку, для предотвращения "3.h5" нужно добавлять "\b".
Как сделать задачу kosta726 только на ls? Скорее всего никак.
« Последнее редактирование: 18 Июля 2015, 21:28:39 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

 

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