1) Não tenho certeza se isso não deve estar no superuser.com
2) ls não imprime o caminho completo de qualquer maneira: ls -1 /your/dir
Editar A pergunta mudou. Pelo comentário de Paulo abaixo, estou atualizando minha resposta. Você pode fazer assim:
ls -1 /home/rich/*.txt | sed s/^.*\\/\//
Isso é menos 1, não l, embora eu trabalhe também. Explicação: ls -l / -1 grava os nomes dos arquivos com as coisas que você não deseja. Cada linha é canalizada através do sed, que aqui está fazendo uma substituição, conforme especificado pelo s /. Uma substituição assume a forma:
s/text/replacement/
Estamos substituindo tudo, desde o início da linha ^
até a última /
( /
é um caractere especial, por isso temos que escapar \\/
) por nada - ou seja, removendo-o e deixando assim apenas o nome do arquivo.