0

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

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 OK

此行包含三个文件位置(粗体部分),我需要将这些文件 scp 到另一个位置,例如 /sample 。并创建子目录来放置文件,例如将这一行文件放入 AS34_59329 中。所以需要创建 /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
4

1 回答 1

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

这仅在您有权在远程框上创建 /sample 时才有效。

于 2013-02-04T05:00:13.280 回答