shell 递归函数---循环拷贝文件到指定目录

功能:如题

代码:

#!/bin/sh
recursive( )
{
     for file in $1
     do
       subfile=`ls $2$3/$file`
       for subsubfile in $subfile
       do
 #               echo $subsubfile
         if [ "$subsubfile" == "$2$3/$file" ]
         then
                rm -rf $3/$file
                mv $subsubfile $3/$file
         else
                recursive `ls $2$3/$file` $2 $3/$file;
         fi
       done
     done
}
cd /tmp
mkdir update;
tar -zxvf update.tgz -C update;
chmod -R 755 /tmp/update/*;
rootdir="/tmp/update"
filelist=`ls /tmp/update/`
for file in $filelist
do
 subfile=`ls $rootdir/$file`
  for subsubfile in $subfile
   do
   if [ "$subsubfile" != "$rootdir/$file" ]
   then
        $(recursive `ls $rootdir/$file` $rootdir /$file)
        # rm -rf /$file/$subfile
        # mv $rootdir/$file/$subsubfile /$file
        break 1;
   else
        kill -9 `ps|grep $file`
        rm -f /usr/bin/$file
        mv $rootdir/$file /usr/bin
   fi
  done
done
#reboot

以下是新添加的

创建文件夹下的所有文件的软链接,链接文件可以指定保存到其他目录

在filelist赋值时,可以指定source路径,

在下文“ ln -s $file arm-linux-"$lastwd" ”这句,可以指定链接文件的目录,比如source路径是当前路径,目标路径也是当前路径

#/bin/bash

filelist=`ls ./`

for file in $filelist
do
   firstwd=$file | cut -d "-" -f1

#   if [ "$firstwd" == "arm" ]
#   then
        lastwd=`echo "$file" | sed ‘s/.*-[]$/\1/‘`
        echo $lastwd
        ln -s $file arm-linux-"$lastwd"
#   fi
done

时间: 2024-08-28 05:20:35

shell 递归函数---循环拷贝文件到指定目录的相关文章

apk安装时把程序附带文件拷贝到手机指定目录下

项目已搞定,今天把.apk文件弄到另外一台非调试手机上用,发现一个问题.因为要画图,所以绘图的点的数据保存在一个.txt的文本文件中,上次直接把它用usb传到指定文件夹下的,但是明显不科学,因为用户下载了你的.apk文件,你却告诉他,还要把这个文本文件拷贝到指定的文件夹下,所以,我就要解决这个问题,就是把文本文件打包在apk文件中,安装.apk时就让创建一个程序文件夹,然后把文本文件拷贝到这个目录文件夹里,用户运行程序,就可以绘图,不用再让他拷贝一份绘图的点的坐标的数据.同理,其实我这里还有设计

scponly 限定用户不能SSH登录,可以SFTP SCP传文件到指定目录

公司基于安全考虑,要求给用户SFTP,SCP权限可以上传相关文件到指定目录,但不能SSH登录,考虑到RSSH也是个解决方案,但有点麻烦,最后找到了SCPONLY 直接说下配置过程, 如果你的系统是CENTOS,那直接用这个配置 1.wget -c http://nchc.dl.sourceforge.net/s - nly/scponly-4.8.tgz #scponly 支持的软件有scp.sfp.rsync.subversion.gftp等客户端 2. ./configure –prefix

不借助autolt实现下载文件到指定目录

今天尝试了下不用借助autolt完成下载文件到指定目录, 好处:在于集成回归,远程机可以绕过执行autolt程序权限问题,导致autolt程序无法调用,不能完成脚本的回归 Firefox浏览器已经成功,代码如下: package com.dwkj.test.util; import java.io.File; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.Ja

利用批处理命令复制指定文件到指定目录下

复制文件到指定路径 关于复制指定文件到指定路径,一般而言指的是对备份文件,因为其具有增长性, 所以添加任务计划之后会按时进行备份,对于常规文件同样适用. 其步骤大致分为: 1:  设定要复制文件的名称(若为每日备份文件要获取系统时间) 2:  设定复制文件的原路径和目标路径进行复制 3:  退出复制程序 例如:复制Y盘目录下文件到D盘目录下 rem 关闭回显 @echo off rem   设定文件时间 set d=%date:~0,10% set d=%d: =0% rem 设定需要复制的文件

从assets中拷贝from文件到指定目录下

/** * * 从assets中拷贝from文件到to目录下 * **/ public void copyFile(Context context, String sourPath, String toPath) { OutputStream output = null; InputStream input = null; try { int read = 0; input = context.getResources().getAssets().open(sourPath); output =

提取文件到指定目录,并重命名

最近做视频,各个目录里都有图片,无法统一导入到视频编辑软件 写了个小程序,可以将指定各级目录下的文件拷贝到指定目录,并以文件夹名字加数字命名 如果文件夹上都有日期,可以选择将日期放前面,做视频时好排序. import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; i

Android首次开机通过设置向导拷贝文件到sdcard目录下

MTK平台机器,首次开机会启动OOBE设置向导,我们可以在此应用中增加一个界面,从/system/目录下拷贝文件到/mnt/sdcard/目录下. 1.首先编译时要将文件从代码路径拷贝到对应的out目录,可以用在mk文件中实现: 方法①:如果文件较少,可以采用逐条拷贝方式,范例如下: CUR_PATH := vendor/ThirdParty/App/tchip PRODUCT_COPY_FILES += $(CUR_PATH)/bootanimation.zip:system/media/bo

小黑的日常折腾-复制外部命令的可执行文件和依赖库文件到指定目录下的对应目录

清明三天假期基本都是在写脚本中度过了,今天又折腾了一个新的脚本,该脚本的作用是快速复制一个或多个命令的可执行文件和依赖库文件到一个模拟的根文件系统下的相应目录下,这个脚本平时运维估计用不到,只有自己制作一个小的Linux发行版时才有可能使用该脚本. 脚本具体的功能如下: 1)提示用户选择要从文本中读取要复制的命令名还是从当前终端中交互式输入命令名. 2)用户选择前者,会自动使用vim打开一个文件,用户根据格式说明填入要复制的命令的名称,可以是多个命令,保存退出后自动执行复制操作. 3)用户选择后

【Linux】【三】linux 复制文件到指定目录

将  application/file/test/logs/ 下的文件 logs.log , logs.tar 复制到  application/file/test/tools/ 下,并新建文件夹[log],内含复制文件. 指令如下: cp  -r  /root/application/file/test/logs/ * /root/application/file/test/tools/ 操作如下: 参考linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹 原文地址:ht