A instrução for
"lê" entrada palavra por palavra. Você precisa ler linha por linha.
while read -r line; do find "$line" -type f ...; done < /tmp/listado.txt
O -r
impede que barras invertidas nas linhas sejam interpretadas.
Eu uso um script para excluir arquivos antigos na Lixeira ou em diretórios tipo Lixo ou semelhante.
Funciona bem, exceto quando tem caracteres especiais ou espaços nos nomes
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Mart&AO0-n Fernandez
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Cordoba
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe - Sevilla
Neste cenário, não funciona
Eu uso dois formatos, mas não trabalho
for p in $(cat /tmp/listado.txt); do find "$p" -type f -mtime +50 -delete; done
ou
for p in $(cat /tmp/listado.txt); do find $p -type f -mtime +50 -delete; done
E dois recebem esse erro
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Not found
Eu não sei como passar para a linha correta do script.
A instrução for
"lê" entrada palavra por palavra. Você precisa ler linha por linha.
while read -r line; do find "$line" -type f ...; done < /tmp/listado.txt
O -r
impede que barras invertidas nas linhas sejam interpretadas.