Eu não sou louco pela explicação de SmallLoanOf1M. É tecnicamente correto, mas responde de uma forma que não corresponde ao exemplo de uso da pergunta.
Portanto, a título de exemplo, aqui está uma diferença importante entre os dois da questão: "file" e "./file"
E se o arquivo for nomeado com um caractere que é analisado pelo shell? Especialmente em relação aos caracteres interpretados pelo comando que está sendo executado.
Especificamente, o caractere "traço": "-". Mas outros personagens são significativos para o shell.
Exemplo. Meu arquivo foi chamado "-dingle"
Tente listar o arquivo:
ls -dingle
# ls -dingle
ls: invalid option -- 'e'
Ainda pior, e se o arquivo tiver o nome " -rf rmbomb *
"? Agora tente removê-lo
rm "-rf rmbomb *"
Eu nem vou tentar usar esse exemplo, mas espero que você entenda.
Então, como você lista um arquivo olhando com traço? Use ./
na frente.
# ls ./-dingle
./-dingle
Idem para rm