Я предлагаю это:
for f in "$(find $indir -type f -name 'NVDI_500m_mean_distance_*_40PC' -not -empty)";
do
cp "$f" /some/targetdir;
done
find
быстрее, чем wc
, чтобы проверить нулевой размер.
Я считаю его более читабельным, чем другое решение, субъективно.
Однако цикл for необязателен, так как:
find "$indir" -type f -name 'NVDI_500m_mean_distance_*_40PC' -not -empty |\
xargs -I % cp % /some/targetdir/%
Всегда "заключать в кавычки" строки пути, поскольку большинство утилит оболочки ломаются, когда в строке есть неэкранированные символы оболочки или пробелы. Есть редко веские причины использовать строки без кавычек.