Заметьте, что если вы перенаправлять вывод в файл ввода, bash будет обрезать файл перед процесс начинается. Например:
cat file > file
приведет к пустым файлам. Значение вы будете свободный содержание.
Это потому, что bash откроет все файлы, которые подлежат перенаправлению io до, он запускает команду. Если вы используете >
, bash дополнительно обрезает файл до нулевой длины. Я не знаю bedtools
, но я предполагаю, что он ожидает непустых файлов в качестве входных данных, поэтому сообщение.
О петле. Обычно не рекомендуется перебирать результаты выражения glob, как вы это делали. Это связано с тем, что имена файлов могут содержать внутренний разделитель полей bash, который приведет к несогласованным результатам.
Я бы предложил использовать вместо find
:
find /home/admin1/phd/results_Sample_*_hg38_hg19 \
-maxdepth 1 \
-name 'Sample_*_bwa_LongSeed_sorted_hg38.bam' \
-exec bash -c 'bedtools genomecov -ibam "{}" > "{}.copy"' \;
проблема не имеет ничего общего с петлей - http://stackoverflow.com/help/mcve –