Existe uma diferença fundamental entre essas duas formas de argumento. E é importante entender o que está acontecendo.
Com ../foldersource/.
, o argumento é passado inalterado para o comando, seja cp
ou rm
ou qualquer outra coisa. Cabe ao comando se esse ponto final tem uma semântica especial ou única diferente da convenção padrão do Unix de simplesmente apontar para o diretório em que reside; os dois rm
e cp
parecem tratá-lo como um caso especial.
Com ../foldersource/*
, o argumento é primeiro expandido pelo shell antes de o comando ser executado e passar qualquer argumento. Assim, rm
nunca vê ../foldersource/*
; ele vê a versão expandida ../foldersource/file1.ext ../foldersource/file2.ext ../foldersource/childfolder1
e assim por diante. Isso é importante porque os sistemas operacionais limitam quantos argumentos podem ser passados para um comando, geralmente apenas algumas centenas.