ракушка: аналог shopt -s dotglob

Я пытаюсь перейти с bash на fish.

Что является аналогом fish для shopt? Я пытаюсь подражать этой строке из моих .bashrc:

shopt -s dotglob # for mv * see hidden files
9
задан 30 December 2013 в 17:11

1 ответ

1116 Это намеренно. В большинстве случаев пользователи не хотят случайно сопоставлять скрытые файлы, которые невидимы для ls (без -a). Обычно файлы скрыты по какой-то причине, а не только для того, чтобы троллить вас. Кроме того, если * будет соответствовать скрытым файлам, сопоставление не скрытых файлов будет слишком сложным.

Однако, в отличие от bash shopt -s dotglob, он не нужен для поиска скрытых файлов. В bash shopt -s dotglob - это единственный способ сопоставления каждого файла в каталоге без случайного сопоставления . или ... Тем не менее, рыбные раковины никогда не могут сопоставить . или .. с глобусами, поэтому это не проблема (если вам серьезно нужно сопоставить . или .. по какой-то глупой причине, просто скажите их явно). Кроме того, рыба старается избегать вариантов по дизайну, поэтому у нее нет dotglob.

Чтобы соответствовать каждому отдельному файлу в каталоге, вы можете использовать расширение в скобках для обнаружения файлов, начинающихся с точек, и тех, которые не являются. {.,} является расширением скобки, которое соответствует точке, которая может существовать или не существовать. Звезда после нее соответствует всему. Поскольку глобусы в fish не могут соответствовать . или .., следующий код соответствует всему, кроме этих двух каталогов (которые, к сожалению, соответствуют bash, если вы используете код ниже)

cat {.,}*
0
ответ дан 30 December 2013 в 17:11

Другие вопросы по тегам:

Похожие вопросы: