Що означає ^ d у ls -l | grep ^ d?


13

Коли я ls -l | grep ^dце роблю, він містить лише каталоги в поточному каталозі.

Те , що я хотів би знати, що робить каретку ^в ^dсередньому?


Для відповідної інформації, шукати регулярні вирази або перевірити цю сторінку на використання регулярних виразів в Grep: robelle.com/smugbook/regexpr.html
Trey Hunner

Це працює, але неоптимально. Розглянемо ls */натомість, що буде працювати з довгим лістингом (або без нього ls -l) і без необхідності grep(і, таким чином, це дуже трохи швидше), і є менш ймовірним (ніж ls -l *) потрапляння в аргумент за надто довге питання (оскільки він проставляє просто каталоги в команду рядок). Звичайно, find . -maxdepth 1 -type dще краще, оскільки він зовсім не захаращує ваш командний рядок.
Адам Кац

Відповіді:


21

Відповідь Енді правильна, як видно на сторінці чоловіка:

Анкерування

Карета ^ та знак долара $ - це метасимволи, які відповідно відповідають порожньому рядку на початку та в кінці рядка.

Причина, по якій він працює, полягає в тому, що -lпрапор lsвикористовує формат довгого списку. Перше, що відображається у кожному рядку - це читані людиною дозволи для файлу, і перший символ цього - або dдля каталогу, або -для файлу


14

Це каре, а не морква. Це означає "початок рядка". Греп відповідає лише рядкам, які починаються з "d".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.