A ação usual no caso de você não lembrar o nome é pressionar Tab . A maioria dos shells (incluindo bash , zsh , ksh ) adivinhará quantos caracteres puderem no primeiro pressionamento de tecla e exibirá uma lista de arquivos e diretórios correspondentes no segundo.
Por exemplo, se você tiver dir1 , dir2 e dir3 em seu diretório inicial, então digitar cp file ~/d e pressionar Tab duas vezes produziria
dir1 dir2 dir3
$cp file ~/dir
Aqui, seu shell poderia adivinhar pela letra "d" que você digitou que você quer um dos três diretórios mencionados acima, e preencheu a parte comum ("dir") em seu comando para você. Tudo que você precisa fazer é digitar "1", "2" ou "3" e pressionar Enter .
Tab pode ser usado várias vezes durante a digitação do mesmo comando. Se o seu diretório de destino estiver enterrado no diretório três, ou se houver muitos arquivos / diretórios para escolher, é conveniente digitar alguns caracteres, clicar em Tab , verificar quantos shell pode adivinhar , digite mais alguns, clique em Tab novamente, etc. Obrigado @EightBitTony pelo comentário.
Note que a competição de linha de comando usando o Tab também funciona com os nomes dos comandos. cp é curto o suficiente para digitar inteiramente, mas se você precisar de algo mais longo como wpa_supplicant , então digitar wpa_s e pressionar a tecla Tab economizará uma boa quantidade de pressionamentos de tecla. Pessoalmente, eu uso zsh , que é configurado por padrão para adivinhar opções de linha de comando, por exemplo, digitando service sshd r e pressionando a tecla Tab é automaticamente expandida para service sshd restart .