📅  最后修改于: 2023-12-03 15:10:04.031000             🧑  作者: Mango
在使用Shell脚本进行批量复制时,可以通过使用静默模式实现无需人工操作即可完成任务的效果。下面将介绍如何使用Shell-Bash实现批量复制静默。
cp
命令进行文件复制;echo
命令将密码传递给sudo
命令,实现获取管理员权限;tee
的方式将命令的输出写入日志文件,方便后续查看操作结果。#!/bin/bash
log_file="copy.log" # 日志文件路径
source_dir="/path/to/source/folder" # 源文件夹路径
target_dir="/path/to/target/folder" # 目标文件夹路径
password="your_password" # sudo密码
# 删除旧日志文件
[ -f "$log_file" ] && rm "$log_file"
# 获取sudo权限,将结果记录到日志文件
echo $password | sudo -S ls > "$log_file" 2>&1
# 复制文件,将结果记录到日志文件
find $source_dir -type f -exec cp -f -p {} $target_dir \; 2>&1 | tee -a "$log_file"
log_file
、source_dir
、target_dir
和password
四个变量,分别代表日志文件路径、源文件夹路径、目标文件夹路径和sudo密码;[ -f "$log_file" ] && rm "$log_file"
删除旧日志文件;echo $password | sudo -S ls > "$log_file" 2>&1
获取sudo权限并将结果记录到日志文件;find
命令查找源文件夹中的所有文件,通过-exec
参数依次执行cp
命令复制到目标文件夹中,将结果记录到日志文件中。通过以上的介绍和代码示例,相信大家已经掌握了如何使用Shell-Bash实现批量复制静默的方法。当然,为了确保脚本的稳定性和安全性,在实际使用时还需要做好充分的测试和安全防护措施。