Jako rozšíření na Shaidovu odpověď bych rád vysvětlil, proč -a možnost zde nebude fungovat:
ls příkaz ne zpracovat zástupné znaky. Interpret příkazového řádku provede tento krok:
Pokud zadáte příkazový řádek "mycommand *.c " interpret příkazového řádku nejprve nahradí zástupný řetězec "*.c " podle seznamu odpovídajících souborů a poté spusťte výsledný příkazový řádek:
mycommand a.c file.c test.c
Interpret příkazového řádku pracuje stejným způsobem pro všechny příkazy, takže nemůže vědět, že -a znamená "včetně skrytých souborů" v případě ls příkaz (zatímco -a má pro jiné příkazy úplně jiný význam)...
Soubory, které začínají tečkou, jsou ve výchozím nastavení skryté ve výpisech souborů. Nejjednodušší způsob, jak porovnat tyto druhy souborů, by bylo umístit tečku na začátek výrazu. Tím však budou nalezeny pouze soubory začínající . .
ls -al .*.swo
Alternativou je nastavení dotglob před spuštěním příkazu pak soubory začínající . budou zahrnuty.
shopt -s dotglob
Přidejte jej do ~/.bashrc pro jeho výchozí nastavení.
Všimněte si, že nastavení dotglob může vést k nechtěným výsledkům při použití bash shell, protože oba . (aktuální adresář) a .. (rodičovský adresář) se zobrazí při použití * . S dotglob nastavit, nikdy zkuste použít rm -R * .