免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1910 | 回复: 5
打印 上一主题 下一主题

File copy ? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-20 16:51 |只看该作者 |倒序浏览
source folder 裡面有sub folder
sub folder 裡下又有 sub sub folder
sub sub folder 裡有 files

現在要把 sub sub folder 裡 files copy 跟 move 到別處
然後把sub sub folder刪除

原始碼如下:
#!/bin/bash

SOURCE_DIR=/raidtds/SMIC/Testing/TDS/temp
DEST_DIR1=/raidtds/SMIC/Testing/TDS/tmp1
DEST_DIR2=/raidtds/SMIC/Testing/TDS/tmp2
cd $SOURCE_DIR
echo "SOURCE=$SOURCE_DIR"
for i in `find . -type d -print`
    echo "SOURCE1=$SOURCE_DIR/$i"
    do
      if [ $i = . ]
      then
         continue
      fi
   
      mkdir $DEST_DIR1/$i 2 > /dev/null
      mkdir $DEST_DIR2/$i 2 > /dev/null
  
      for j in `find . -type d -print`
          echo "SOURCE2=$SOURCE_DIR/$i/$j"
          do
            if [ $j = . ]
            then
               continue
            fi
            cd $SOURCE_DIR/$i/$j
            mkdir $DEST_DIR1/$i/$j 2 >/dev/null
            mkdir $DEST_DIR2/$i/$j 2 >/dev/null      
            
            for k in `find . -type f -print`   
                cp $k $DEST_DIR1/$i/$j/$k
                mv $k $DEST_DIR2/$i/$j/$k
            done
          done
      done
      
      cd  cd $SOURCE_DIR/$i
      for l in `find . -type d -print`
          do       
            if [ $ = . ]
            then
                continue
            fi
            rmdir -p $SOURCE_DIR/$i/$l
          done      
      done
  done
done  

它會出現
SOURCE=/raidtds/SMIC/Testing/TDS/temp
.//test.sh: line 9: syntax error near unexpected token `echo'
.//test.sh: line 9: `    echo "SOURCE1=$SOURCE_DIR/$i"'
該如何改

论坛徽章:
0
2 [报告]
发表于 2003-02-20 17:06 |只看该作者

File copy ?

for ..........后应该直接更do
之间不应该有echo
echo防到do后

论坛徽章:
0
3 [报告]
发表于 2003-02-20 17:15 |只看该作者

File copy ?

修改後 ;
#!/bin/bash

SOURCE_DIR=/raidtds/SMIC/Testing/TDS/temp
DEST_DIR1=/raidtds/SMIC/Testing/TDS/tmp1
DEST_DIR2=/raidtds/SMIC/Testing/TDS/tmp2
cd $SOURCE_DIR
echo "SOURCE=$SOURCE_DIR"
for i in `find . -type d -print`;
do
    if [ $i = . ]
    then
       continue
    fi
   
    mkdir $DEST_DIR1/$i 2 > /dev/null
    mkdir $DEST_DIR2/$i 2 > /dev/null
   
    cd $SOURCE_DIR/$i
    for j in `find . -type d -print`;
    do
      if [ $j = . ]
      then
         continue
      fi
      cd $SOURCE_DIR/$i/$j
      mkdir $DEST_DIR1/$i/$j 2 >/dev/null
      mkdir $DEST_DIR2/$i/$j 2 >/dev/null      
            
      for k in `find . -type f -print`;
      do   
          cp $k $DEST_DIR1/$i/$j/$k
          mv $k $DEST_DIR2/$i/$j/$k
      done
    done
      
    cd $SOURCE_DIR/$i
    for l in `find . -type d -print`;
    do       
        if [ $ = . ]
        then
           continue
        fi
        rmdir -p $SOURCE_DIR/$i/$l
    done      
done

error message :
SOURCE=/raidtds/SMIC/Testing/TDS/temp
mkdir: Failed to make directory "2"; File exists
SOURCE2=/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/.
SOURCE2=/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./rawdata
mkdir: Failed to make directory "2"; File exists
SOURCE2=/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./standard
mkdir: Failed to make directory "2"; File exists
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/.": /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/. not removed; Can not remove . or ..
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./rawdata": /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./rawdata not removed; Directory not empty
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./rawdata/2": /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/. not removed; Can not remove . or ..
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./standard": /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./standard not removed; Directory not empty
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./standard/2": /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/. not removed; Can not remove . or ..

论坛徽章:
0
4 [报告]
发表于 2003-02-20 17:15 |只看该作者

File copy ?

echo "SOURCE1=$SOURCE_DIR/$i"
do

-->

do
echo "SOURCE1=$SOURCE_DIR/$i"

论坛徽章:
0
5 [报告]
发表于 2003-02-20 17:39 |只看该作者

File copy ?

程式碼如下:
#!/bin/bash

SOURCE_DIR=/raidtds/SMIC/Testing/TDS/temp
DEST_DIR1=/raidtds/SMIC/Testing/TDS/tmp1
DEST_DIR2=/raidtds/SMIC/Testing/TDS/tmp2
cd $SOURCE_DIR
echo "SOURCE=$SOURCE_DIR"
for i in `find . -type d -print`;
do
    if [ $i = . ]
    then
       continue
    fi
   
   # mkdir $DEST_DIR1/$i 2 > /dev/null
   # mkdir $DEST_DIR2/$i 2 > /dev/null
   
    mkdir $DEST_DIR1/$i
    mkdir $DEST_DIR2/$i
   
    cd $SOURCE_DIR/$i
    for j in `find . -type d -print`;
    do
      if [ $j = . ]
      then
         continue
      fi
      cd $SOURCE_DIR/$i/$j
    #  mkdir $DEST_DIR1/$i/$j 2 >/dev/null
    #  mkdir $DEST_DIR2/$i/$j 2 >/dev/null      
      mkdir $DEST_DIR1/$i/$j
      mkdir $DEST_DIR2/$i/$j           
      for k in `find . -type f -print`;
      do   
          cp $k $DEST_DIR1/$i/$j/$k
          mv $k $DEST_DIR2/$i/$j/$k
      done
    done
      
    cd $SOURCE_DIR/$i
    for aa in `find . -type d -print`;
    do       
        if [ $aa = . ]
        then
           continue
        elif [ $aa = .. ]
        then
           continue           
        fi
       
        rmdir -p $SOURCE_DIR/$i/$aa
    done      
done

仍有error message:
ds:/export/home3/kk/temp> test.sh
SOURCE=/raidtds/SMIC/Testing/TDS/temp
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./rawdata": /raidtds/SMIC/Testing/TDS/temp/.
/A05481.K1/. not removed; Can not remove . or ..
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05481.K1/./standard": /raidtds/SMIC/Testing/TDS/temp/
./A05481.K1/. not removed; Can not remove . or ..
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp1/A05481.K1/rawdata"; File exists
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp2/A05481.K1/rawdata"; File exists
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/rawdata: No such file or directory
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/rawdata: No such file or directory
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp1/A05481.K1/standard"; File exists
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp2/A05481.K1/standard"; File exists
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/standard: No such file or directory
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05481.K1/standard: No such file or directory
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05509/./rawdata": /raidtds/SMIC/Testing/TDS/temp/./A0
5509/. not removed; Can not remove . or ..
rmdir: directory "/raidtds/SMIC/Testing/TDS/temp/./A05509/./standard": /raidtds/SMIC/Testing/TDS/temp/./A
05509/. not removed; Can not remove . or ..
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp1/A05509/rawdata"; File exists
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp2/A05509/rawdata"; File exists
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05509/rawdata: No such file or directory
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05509/rawdata: No such file or directory
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp1/A05509/standard"; File exists
mkdir: Failed to make directory "/raidtds/SMIC/Testing/TDS/tmp2/A05509/standard"; File exists
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05509/standard: No such file or directory
.//test.sh: cd: /raidtds/SMIC/Testing/TDS/temp/./A05509/standard: No such file or directory

论坛徽章:
0
6 [报告]
发表于 2003-02-20 18:06 |只看该作者

File copy ?

SOURCE_DIR=/raidtds/SMIC/Testing/TDS/temp
DEST_DIR1=/raidtds/SMIC/Testing/TDS/tmp1
DEST_DIR2=/raidtds/SMIC/Testing/TDS/tmp2

cp  -r  $SOURCE_DIR/*   $DEST_DIR1
mv  $SOURCE_DIR/*  $DEST_DIR2
#rm -r  $SOURCE_DIR

不知道准确意图,仅为猜测.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP