Я пытаюсь мигрировать из bash
в fish
.
Что это за fish
аналог shopt
? Я пытаюсь подражать этой строке из моего .bashrc
:
shopt -s dotglob # for mv * see hidden files
command-line
fish
netimen
источник
источник
{,.}*
вручную.Ответы:
Это намеренно. В большинстве случаев пользователи не хотят случайно сопоставлять скрытые файлы, для которых
ls
(без-a
) невидимы . Обычно файлы скрыты по какой-то причине, а не только для того, чтобы троллить вас. Кроме того, если*
сопоставить скрытые файлы, сопоставление не скрытых файлов будет слишком сложным.Однако, в отличие от bash,
shopt -s dotglob
он не нужен для сопоставления скрытых файлов. В bashshopt -s dotglob
это единственный способ сопоставления каждого файла в каталоге без случайного совпадения.
или..
. Тем не менее, раковина рыбы никогда не может совпадать.
или..
с шариками, поэтому это не проблема (если вам серьезно нужно сопоставить.
или..
по какой-то глупой причине, просто скажите их явно). Кроме того, рыба старается избегать выбора вариантов дизайна, поэтому она не имеетdotglob
.Чтобы соответствовать каждому отдельному файлу в каталоге, вы можете использовать расширение в скобках для обнаружения файлов, начинающихся с точек, а тех, которые не являются.
{.,}
это расширение скобки, которое соответствует точке, которая может существовать или не существовать. Звезда после нее соответствует всему. Поскольку глобусы в fish не могут совпадать с.
или..
, следующий код соответствует всем, кроме этих двух каталогов (которые, к сожалению, соответствуют bash, если вы используете код ниже)источник