Sorunuz net değil. Yapılacak en mantıklı şey cp
, joker karakter cp
hata iletisini çalıştırmak ve gizlemek yerine hiçbir dosyayla eşleşmediğinde hiç çalışmamaktır .
Bunu yapmak için, kabuk bash ise, joker karakter deseni hiçbir dosyayla eşleşmezse hiçbir şey genişletmeyecek şekilde nullglob
seçeneği ayarlayın . Ardından, desenin herhangi bir şeye genişleyip genişlemediğini kontrol edin ve cp
bu durumda aramayın .
#!/bin/bash
shopt -s nullglob
files=(/srv/ftp/201*/wha*/*.jj)
if [[ ${#files[@]} -ne 0 ]]; then
cp "${files[@]}" ~
fi
Düz sh'de, globın değişmeden bırakılıp bırakılmadığını test edin, var olmayan bir dosyayı işaret edin.
set -- /srv/ftp/201*/wha*/*.jj
if ! [ -e "$1" ] && ! [ -L "$1" ]; then
cp "$@" ~
fi