我在每一行都有一个长字符串,一行如
1000 AS34_59329 RICwdsRSYHSD11-2-IPAAPEK-93 /ifshk5/BC_IP/PROJECT/T11073/T11073_RICekkR/Fq/AS34_59329/111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_1.fq.gz / ifshk5 / BC_IP / PROJECT / T11073 / T11073_RICekkR / Fq中/ AS34_59329 / 111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_2.fq.gz /ifshk5/BC_IP/PROJECT/T11073/T11073_RICekkR/Fq/AS34_59329/clean_111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_1.fq.gz.total.info 11.824 0.981393 43.8283 95.7401确定
这一行包含三个文件位置(粗体部分),我需要将这些文件scp到另一个位置,如/ sample。并且还创建子目录来放置文件,就像这个放入AS34_59329的行文件一样。所以需要create / sample / AS34_59329 也许很多行的子目录名是相同的,所以需要判断子目录是否已经创建。 如何自动创建子目录?
#! /bin/bash
while read myline
do
for i in $myline
do
if [ -f $i]; then
scp -r $i xxxx@192.168.174.33:/sample
fi
done
done < data.list
答案 0 :(得分:0)
看起来你有ssh键,所以如果你ssh那么远程命令对你有用
if [ -f $i]; then
ssh xxxx@192.168.174.33 '[ -d /sample ] && echo "OK" || mkdir /sample'
scp -r $i xxxx@192.168.174.33:/sample
fi
只有在远程复选框上有权创建/采样时才能使用此功能。