Para arquivos, ls -l file mostra (entre outras coisas) o tamanho de file em bytes, enquanto du -k file mostra o espaço ocupado por file no disco (em unidades de 1 kB = 1204 bytes). Como o espaço em disco é alocado em blocos, o tamanho indicado por du -k é sempre um pouco maior que o espaço indicado por ls -kl (que é o mesmo que ls -l , mas em unidades de 1 kB).
Para diretórios, ls -ld dir mostra (entre outras coisas) o tamanho da lista de nomes de arquivos (junto com vários atributos) dos arquivos e subdiretórios em dir . Esta é apenas a lista de nomes de arquivos, não o conteúdo dos arquivos ou subdiretórios. Portanto, esse tamanho aumenta quando você adiciona arquivos a dir (mesmo quando os arquivos estão vazios), mas permanece inalterado quando um dos arquivos em dir cresce.
No entanto, quando você exclui arquivos de dir , o espaço da lista não é recuperado imediatamente, mas as entradas dos arquivos excluídos são marcadas como não usadas e depois são recicladas (isso depende da implementação, mas o que eu descrito é praticamente o comportamento universal nos dias de hoje). É por isso que você pode não ver nenhuma alteração na saída ls -ld quando excluir arquivos até muito mais tarde, se é que vai acontecer.
Finalmente, du -ks dir mostra (uma estimativa) do espaço ocupado no disco por todos os arquivos em dir , junto com todos os arquivos em todos os subdiretórios dir , em unidades de 1 kB = 1024 bytes. Levando em conta a descrição acima, isso não tem qualquer relação com a saída de ls -kld dir .