Я намагаюся мігрувати з bashна fish.
Що таке fishаналог shopt? Я намагаюся наслідувати цей рядок із мого .bashrc:
shopt -s dotglob # for mv * see hidden files
Я намагаюся мігрувати з bashна fish.
Що таке fishаналог shopt? Я намагаюся наслідувати цей рядок із мого .bashrc:
shopt -s dotglob # for mv * see hidden files
Відповіді:
Це навмисно. Здебільшого користувачі не хочуть випадково відповідати прихованим файлам, невидимим для ls(без -a). Зазвичай файли приховуються з причини, а не просто для того, щоб вас тролити. Крім того, якщо *відповідатимуть прихованим файлам, відповідати не прихованим файлам було б занадто складно.
Однак, на відміну від bash shopt -s dotglob, не потрібно відповідати прихованим файлам. В bash, shopt -s dotglobце єдиний спосіб зіставлення кожного файлу в каталозі без випадкового відповідності .або ... Однак шкаралупа риби ніколи не може співпадати .або ..з глобусами, тому це не проблема (якщо вам серйозно потрібно збігатися .або ..з якихось дурних причин, просто скажіть їх прямо). Крім того, риба намагається уникати варіантів за дизайном, тому її немає dotglob.
Щоб відповідати кожному файлу в каталозі, ви можете використовувати розширення дужок для виявлення файлів, що починаються з крапок, і тих, які ні. {.,}це розширення дужок, яке відповідає крапці, яка може існувати або не існувати. Зірка після неї відповідає всім. Оскільки глобуси в рибі не можуть збігатися .або .., наступний код відповідає всім, крім тих двох каталогів (які, на жаль, збігаються, якщо ви використовуєте код нижче)
cat {.,}*
{,.}*вручну.