Quanto à sua pergunta exata:
Can I safely ignore: “warning: … ignored null byte … ”?
A resposta é sim, já que você está criando o byte nulo com seu próprio código.
Mas a verdadeira questão é: por que você precisa de um "byte nulo"?
O comando inotifywait
produzirá uma saída na forma de:
$dir ACTION $filename
Qual, para sua entrada, se parece com isso (para o arquivo hello4):
/home/user/Monitor/ CREATE hello4
O comando cut irá imprimir os campos 1 e 3, e usar um delimitador nulo em --output-delimiter=""
produzirá uma saída com um nulo incorporado, algo como:
$'/home/user/Monitor/#!/bin/bash
monitordir="/home/user/Monitor/"
tempdir="/home/user/tmp/"
logfile="/home/user/notifyme"
inotifywait -m -r -e create ${monitordir} |
while read dir action basefile; do
cp -u "${dir}${basefile}" "${tempdir}";
done
hello4\n'
Isso não é o que você precisa, devido ao valor nulo adicionado.
A solução acaba sendo muito simples.
Como você já está usando o comando read
, faça isso:
$dir ACTION $filename
Use o valor padrão do IFS para dividir os espaços em branco da entrada e apenas use o diretório e o nome do arquivo para copiar.