LINUX.ORG.RU

find.... help!


0

0

Объясните, пллз, как правильно с помощью find найти все файлы с данным расширением (*.sh) в данной директории (например, enduser/myproject/build)? Причем нужно, чтобы поиск велся и внутри вложенных директорий в указанной.

anonymous

Ответ на: комментарий от Dead

Не работает :(

find dir1/dir2/dir4 -name *.sh

не работает.

find dir4 -name *.sh

работает.

Как сделать, чтобы работал первый вариант?

anonymous
()
Ответ на: комментарий от anonymous

как это не работает????
у меня все отлично!
[roland@main roland]$ find ./ -name *.sh
./RPM/BUILD/divx4linux/copy.sh
./RPM/BUILD/divx4linux/install.sh
./RPM/BUILD/MPlayer-0.90/help/help_diff.sh
./RPM/BUILD/MPlayer-0.90/TOOLS/fastmem.sh
./RPM/BUILD/MPlayer-0.90/TOOLS/GL-test/compile.sh
...........

Dead ★★★★
()
Ответ на: комментарий от Dead

Очень странно. Выяснилось, что не работает из-за того, что в текущей директории тоже лежат файлы с таким расширением. Я их удаляю - все начинает работать. Что за дела??

anonymous
()
Ответ на: комментарий от anonymous

правильный ответ с одинарными кавычками тебе уже привели.

Без кавычек, как и с двойными кавычками неправильный ответ. Потому что *.sh эксапансится шеллом. Может случайно работать потому что некоторые шеллы в случае если экспансить нечего оставляют звездочку как есть.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

угу, верно, забыл, что shell подставляет замест * файлы сам
вот только ты пробел поставил между '-' и name
случайно наверное

[roland@main ModernII]$ find ./ - name '*.sh'
find: неверный предикат `-'

Dead ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.