A questão não está muito clara ... com base no seu comentário para @cmks, aqui estão duas opções:
-
Se você estiver procurando por arquivos em que o primeiro caractere do nome do arquivo seja "s" e o último seja "l", use
ls -l s*l
-
Se você estiver procurando por arquivos em que o primeiro caractere do nome do arquivo seja (a "a" ou "s") e o último seja (a "a" ou "l") - use
ls [as]*[al]
Se for outra coisa, edite sua pergunta para esclarecer ...
Sua versão ls -l sfa
listará apenas arquivos com o nome exato "sfa" (ou, se houver um diretório com esse nome, quaisquer arquivos nesse diretório). Não faz o que parece estar procurando.
As regras para correspondência de nomes de arquivos ("globbing") são bem simples:
- "?" corresponde a qualquer caractere único
- "*" corresponde a qualquer número (zero ou mais) de caracteres
- Use colchetes ([]) para corresponder a um único caractere de uma coleção: [fqsb] corresponde a f, q, s ou b; [b-d] corresponde a b, c ou d
- Use chaves ({}} para corresponder a uma das várias strings específicas: {foo, bar} corresponde a "foo" ou "bar".
O separador de diretório "/" é excluído da correspondência - a correspondência é feita apenas em nomes de arquivos.
Veja também ShellGlobbing na ajuda do Ubuntu.