Seus comandos são um absurdo:
cd Pictures | ls >> cd /home/kai/listaplikow.txt
"Vá para o diretório Pictures
. Canalize a saída (nula) do comando cd
para ls
, que não recebe entrada padrão. Envie a saída ls
'para um arquivo chamado cd
. "
O que você provavelmente quer é algo como:
( cd Pictures; ls >> /home/kai/listaplikow.txt )
A razão pela qual isso está em parens é que ele é executado em um subshell e não (tenta) alterar o diretório de trabalho do script subjacente.
De qualquer forma, é uma má ideia analisar a saída de ls
em geral. Pode ser melhor fazer algo como:
find Pictures/ -maxdepth 1 >> /home/kai/listaplikow.txt
Se você não gosta de ver o caminho em que os arquivos estão, ainda é melhor usar find
para obter a lista de arquivos:
find Pictures/ -maxdepth 1 -print0 | xargs -0 -L1 basename >> /home/kai/listaplikow.txt