shell bash获取文件路径并放入子目录

时间:2013-02-04 04:50:44

标签: bash shell

我在每一行都有一个长字符串,一行如

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

1 个答案:

答案 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

只有在远程复选框上有权创建/采样时才能使用此功能。