find * не отображает скрытые папки

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

roolebo
Сообщения: 12

find * не отображает скрытые папки

Сообщение roolebo »

Хочу просмотреть все папки в текущей директории, но отображаются только те, которые не скрыты:

Код: Выделить всё

find * -prune -type d

Можно ли обойтись только find или придется использовать ls + grep?
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: find * не отображает скрытые папки

Сообщение nesk »

попробуйте
find . -prune -type d
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

nesk писал(а):
13.02.2010 23:00
попробуйте
find . -prune -type d

так только точка выводится
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: find * не отображает скрытые папки

Сообщение nesk »

find . -maxdepth 1 -type d
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: find * не отображает скрытые папки

Сообщение serzh-z »

Очень любопытно. У меня при поиске в $HOME все скрытые каталоги, включая дотфайлы, вывело.
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

nesk писал(а):
13.02.2010 23:04
find . -maxdepth 1 -type d

а так выводятся лишние "./" перед названием директории, которые нужно убирать. мне просто интересно можно ли обойтись без grep.

serzh-z писал(а):
13.02.2010 23:06
Очень любопытно. У меня при поиске в $HOME все скрытые каталоги, включая дотфайлы, вывело.

попробовал на arch и ubuntu. поведение такое, как я описал ранее.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: find * не отображает скрытые папки

Сообщение /dev/random »

roolebo писал(а):
13.02.2010 23:21
nesk писал(а):
13.02.2010 23:04
find . -maxdepth 1 -type d

а так выводятся лишние "./" перед названием директории, которые нужно убирать. мне просто интересно можно ли обойтись без grep.

find . -mindepth 1 -maxdepth 1 -type d -printf '%P\n'

roolebo писал(а):
13.02.2010 23:21
serzh-z писал(а):
13.02.2010 23:06
Очень любопытно. У меня при поиске в $HOME все скрытые каталоги, включая дотфайлы, вывело.

попробовал на arch и ubuntu. поведение такое, как я описал ранее.

Это из-за * в строке. В этом месте оболочка сама подставляет на место звёздочки _не скрытые_ файлы и каталоги.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: find * не отображает скрытые папки

Сообщение serzh-z »

roolebo писал(а):
13.02.2010 23:21
попробовал на arch и ubuntu. поведение такое, как я описал ранее.
Попробовал в Ubuntu... Все так же прекрасно выводится. Думаю, стоит уточнить - что мы "считаем" скрытыми файлами?
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

serzh-z писал(а):
13.02.2010 23:34
Попробовал в Ubuntu... Все так же прекрасно выводится. Думаю, стоит уточнить - что мы "считаем" скрытыми файлами?

Скрытые - это которые с точкой перед именем. Или не так?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: find * не отображает скрытые папки

Сообщение serzh-z »

roolebo писал(а):
14.02.2010 00:43
Скрытые - это которые с точкой перед именем. Или не так?
Так.

Вообще, /dev/random выше уже ответил почему не работает - из-за "*".
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

serzh-z писал(а):
14.02.2010 00:58
Так.

Вообще, /dev/random выше уже ответил почему не работает - из-за "*".

Да, это то, что мне нужно. Еще вчера проверил - работает.
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: find * не отображает скрытые папки

Сообщение nesk »

find .* * -prune -type d
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

nesk писал(а):
14.02.2010 10:16
find .* * -prune -type d

Все бы хорошо, но выводятся лишние две ссылки: . и ..
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: find * не отображает скрытые папки

Сообщение sash-kan »

nesk писал(а):
14.02.2010 10:16
find .* * -prune -type d
какое-то извращение. тогда уж лучше dotglob включить:
$ shopt -s dotglob
$ find * -prune type d
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: find * не отображает скрытые папки

Сообщение nesk »

roolebo писал(а):
14.02.2010 12:51
Все бы хорошо, но выводятся лишние две ссылки: . и ..

find .[!.]* * -prune -type d
sash-kan писал(а):
14.02.2010 14:58
какое-то извращение.


:crazy:
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: find * не отображает скрытые папки

Сообщение drBatty »

roolebo писал(а):
13.02.2010 23:21
а так выводятся лишние "./" перед названием директории, которые нужно убирать. мне просто интересно можно ли обойтись без grep.

а зачем?
roolebo писал(а):
14.02.2010 12:51
Все бы хорошо, но выводятся лишние две ссылки: . и ..

а кто вам сказал, что они лишние? есть такие файлы, почему их не выводить?
а find тут вообще не причём, она во все каталоги лезет. Я не виноват, что вы своей звёздочкой подсовываете ей только не скрытые.

Если вы хотите получить полный список файлов в текущем каталоге, так и напишите: find $PWD
А звёздочка - это кривая дорожка, find её не увидит, увидит только то, что ей выдаст ваш шелл после обработки.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

drBatty писал(а):
15.02.2010 01:35
а зачем?

Внешний вид. Хотелось, чтобы отображалось только название папки.
drBatty писал(а):
15.02.2010 01:35
а кто вам сказал, что они лишние? есть такие файлы, почему их не выводить?
а find тут вообще не причём, она во все каталоги лезет. Я не виноват, что вы своей звёздочкой подсовываете ей только не скрытые.

Если вы хотите получить полный список файлов в текущем каталоге, так и напишите: find $PWD
А звёздочка - это кривая дорожка, find её не увидит, увидит только то, что ей выдаст ваш шелл после обработки.

Они лишние для дальнейшей обработки. А про глоббинг я только вчера прочитал :blush: Узнал бы раньше, было бы меньше непонятностей.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: find * не отображает скрытые папки

Сообщение drBatty »

roolebo писал(а):
15.02.2010 09:04
Внешний вид. Хотелось, чтобы отображалось только название папки.

roolebo писал(а):
15.02.2010 09:04
Они лишние для дальнейшей обработки.

я не пойму, вам это для обработки надо, или любоваться? для каждого случая есть готовые решения (часто встроенные, например моя ls красиво и в цвете всё рисует для меня, но если она заметила, что работает внутри скрипта, то делает только то что надо - просто список файлов, без всяких красивостей).
roolebo писал(а):
15.02.2010 09:04
Узнал бы раньше, было бы меньше непонятностей.

там специально для этого и сделано исключение, например наберёте вы
rm -rvf ~/trash/*, и кроме мусора эта команда постирает и .., и ../.., и вообще всё что сможет (в том числе и содержимое удалённых компьютеров) :(
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

drBatty писал(а):
15.02.2010 09:27
я не пойму, вам это для обработки надо, или любоваться? для каждого случая есть готовые решения (часто встроенные, например моя ls красиво и в цвете всё рисует для меня, но если она заметила, что работает внутри скрипта, то делает только то что надо - просто список файлов, без всяких красивостей).

К сожалению, пока нет опыта, не все получается делать эффективно и оптимальным способом. Ну а поэтому мое решение какой-то задачи может быть немного странным или даже диковатым.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: find * не отображает скрытые папки

Сообщение drBatty »

roolebo писал(а):
15.02.2010 22:44
К сожалению, пока нет опыта, не все получается делать эффективно и оптимальным способом. Ну а поэтому мое решение какой-то задачи может быть немного странным или даже диковатым.

вам тут уже посоветовали man читать? так вот - вас обманули. man - это специальный прикол линуксоидов - там понять ничего нельзя. почитайте info coreutils (сначала man info, чтоб знать, какие кнопки давить).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
roolebo
Сообщения: 12

Re: find * не отображает скрытые папки

Сообщение roolebo »

drBatty писал(а):
15.02.2010 23:35
вам тут уже посоветовали man читать? так вот - вас обманули. man - это специальный прикол линуксоидов - там понять ничего нельзя. почитайте info coreutils (сначала man info, чтоб знать, какие кнопки давить).

Это уже полемика, к чему она? Тем более проблема уже решена. А man find я читал, естественно, но мне все 1573 строки сходу не освоить. Да и проблема вообще была связана с globbing, который там не упомянут. И зачем я это оправдываюсь.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: find * не отображает скрытые папки

Сообщение drBatty »

roolebo писал(а):
15.02.2010 23:56
Да и проблема вообще была связана с globbing, который там не упомянут. И зачем я это оправдываюсь.

:)
про глобинг в man bash и в ABS.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: