Sua pergunta não está clara. A coisa mais sensata a fazer seria não executar cp
quando o curinga não corresponder a nenhum arquivo, em vez de executar cp
e ocultar a mensagem de erro.
Para fazer isso, se o shell for bash, defina a nullglob
opção para que o padrão curinga se expanda para nada se não corresponder a nenhum arquivo. Em seguida, verifique se o padrão se expandiu para algo e não chame cp
nesse caso.
#!/bin/bash
shopt -s nullglob
files=(/srv/ftp/201*/wha*/*.jj)
if [[ ${#files[@]} -ne 0 ]]; then
cp "${files[@]}" ~
fi
No sh simples, teste se o globo foi deixado inalterado, apontando para um arquivo inexistente.
set -- /srv/ftp/201*/wha*/*.jj
if ! [ -e "$1" ] && ! [ -L "$1" ]; then
cp "$@" ~
fi