Почти все csh
в наши дни на самом деле являются tcsh
Если вы используете tsh 6.18.00 (20120114) или новее, вы можете использовать **
(проверьте с помощью tcsh --version
):
ls "${file}"/**/*.root
Это будет только , если установлена переменная globstar
:
set globstar
Полные документы из tcsh (1)
:
Переменная оболочки
globstar
может быть установлена так, чтобы разрешить**
или***
в виде файла {{ 1}} шаблон glob, который соответствует любой строке символов, включая/
, , рекурсивно просматривающий любые существующие подкаталоги. Например,ls **. C
перечислит все файлы .c в текущем дереве каталогов. Если используется сам по себе, он будет соответствовать нулю или нескольким подкаталогам (например,ls /usr/include/**/time.h
перечислит любой файл с именемtime.h
в дереве каталогов / usr / include;ls /usr/include/**time.h
будет соответствовать любому файлу в / usr / include дерево каталогов, заканчивающееся наtime.h
; иls /usr/include/**time**.h
будет соответствовать любому файлу .h свремя
либо в имени подкаталога , либо в самом имени файла). Чтобы предотвратить проблемы с рекурсией , шаблон**
не будет переходить в символическую ссылку , содержащую каталог. Чтобы переопределить это, используйте***
(+)