Você pode usar o printf
incorporado com %q
para fazer isso. Por exemplo:
$ file="Dr' A.tif"
$ printf '%q\n' "$file"
Dr\'\ A.tif
$ file=' foo$bar\baz''
$ printf '%q\n' "$file"
\ foo\$bar\baz\'
Da documentação bash em printf
:
In addition to the standard format specifications described in printf(1) and printf(3), printf interprets: %b expand backslash escape sequences in the corresponding argument %q quote the argument in a way that can be reused as shell input %(fmt)T output the date-time string resulting from using FMT as a format string for strftime(3)