Use xargs
:
xargs rm < file # or
xargs -a file rm
Mas isso não funcionará se os nomes / caminhos dos arquivos contiverem caracteres que devem ser escapados.
Se os seus nomes de arquivo não têm novas linhas, você pode fazer:
tr '\n' '#!/bin/bash
if [ -z "$1" ]; then
echo -e "Usage: $(basename $0) FILE\n"
exit 1
fi
if [ ! -e "$1" ]; then
echo -e "$1: File doesn't exist.\n"
exit 1
fi
while read -r line; do
[ -n "$line" ] && rm -- "$line"
done < "$1"
' < file | xargs -0 rm # or
xargs -a file -I{} rm {}
Como alternativa, você pode criar o seguinte script:
sudo chmod +x /usr/local/bin/delete-from
Salve como /usr/local/bin/delete-from
, conceda permissão de execução:
delete-from /path/to/file/with/list/of/files
Em seguida, execute-o com:
xargs rm < file # or
xargs -a file rm