Linux下使用smbclient传输文件夹(包括文件)脚本

遍历文件夹,是文件就put上去,不是文件就创建目录。
根据自己的需求改一下前面的directoryserverpathdes_directory就可以用了

在代码中smbclient中使用了-N,因为我用的是匿名登录,加了-N就不需要提示输入密码了。

#!/bin/bash

read -p "请输入一个字符串:" string  

# 指定要遍历的文件夹路径  
directory="play-$string"
echo "你输入的版本号是:$string, 遍历的文件夹为:$directory"

# smb服务器
serverpath="//192.168.10.10/研发"
# smb服务器目标文件夹下
des_directory="软件"

# 递归遍历函数
function handleDir {
    # 循环目录  
    for file in "$1"/*  
    do  
        # 如果是文件,则直接处理  
        if [ -f "$file" ]  
        then  
            # 上传文件 put
            smbclient $serverpath -N -c "cd $des_directory;put ./$file ./$file"
        fi  

        # 如果是目录,创建目录后,递归处理  
        if [ -d "$file" ]  
        then  
            # 在smb服务器创建该文件夹
            smbclient $serverpath -N -c "cd $des_directory;mkdir ./$file"
            # 递归处理子目录  
            handleDir "$file"
        fi  
    done 
}

# 判断文件夹在不在
if test -d $directory; then
    # 在smb服务起,创建这个文件夹
    smbclient $serverpath -N  -c "cd $des_directory;mkdir $directory"

    #开始遍历目录
    handleDir $directory
else
    echo "文件夹不存在!"
fi

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值