Chtěl bych vypsat všechny soubory odpovídající určitému vzoru a ignorovat malá a velká písmena.
Například spouštím následující příkazy:
ls *abc*
Chci vidět všechny soubory, které mají „abc“ jako součást názvu souboru, bez ohledu na velikost písmen, jako
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt
Poznámka
Hledal jsem na manuálové stránce případ, ale nic jsem nenašel.
Přijatá odpověď:
Ve skutečnosti to dělá váš shell, nikoli ls
.
V bash
, použili byste:
shopt -s nocaseglob
a pak spusťte svůj příkaz.
Nebo v zsh
:
unsetopt CASE_GLOB
Nebo v yash:
set +o case-glob
a potom váš příkaz.
Možná to budete chtít vložit do .bashrc
, .zshrc
nebo .yashrc
, respektive.
Případně pomocí zsh:
setopt extendedglob
ls -d -- (#i)*abc*
(to je změna velikosti písmen bez ohledu na velikost písmen na základě zástupných znaků)
S ksh93:
ls -d -- ~(i:*abc*)
Chcete globovat fungovat jinak, ne ls
, protože to jsou všechny soubory předané do ls
u skořápky.