LINUX.ORG.RU

ls скрытые файлы


0

0

Если в директории есть файлы
drwxr-xr-x 2 n4ela users 48 Май 5 13:56 .java
drwxr-xr-x 2 n4ela users 48 Май 5 13:57 .javaws
и по команде ls -la они показываются
То почему по команде ls -la | grep *java* эти файлы не видны, хотя если написать ls -la | grep java* т.е. без первой звездочки то все работает?
и можно ли обойтись без grep ( ls -la *java* ) ?


Потому что grep работает с regexp'ами, а не wildcard'ами.

*java* = *jav.*
java* == jav.*

где .* - произвольное количество любых разных символов, а * перед jav в первом регэкспе - просто знак звёздочки.

sig_wall
()

Строка *java* расширяется до .java .javaws (или проверьте, до чего: echo *java*)

Естественно, греп такую подстроку не находит. Делайте лучше просто grep java, ни к чему Вам эти звёзды на концах.

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

и вообще, если в папке есть файлы, подходящие под wildcard, то в параметрах grep'а они будут заменены, и в итоге вызовется, к примеру вместо grep java* - grep java_in_name_1 java_in_name_2, так что стоит либо использовать более простые регэкспы (можно просто grep \\\.java или grep java), либо экранировать звёздочки.

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

> А что можно почитать про regexps?
man 7 regex
man perlre

Всё под рукой :)

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