#!/bin/bash
if [ $# -lt 2 ]
  then echo 'Usage: $0 Dir file1 file2 ...'; exit 1;
fi
test ! -d $1 && echo 'Parameter 1 must be a directory' && exit 1
DIR=$1
shift
for i
do
  test ! -f $i && echo 'Error: $i is not an ordinary file or Does not exist' && continue;
  cp -i $i $DIR
done

这段Bash脚本实现的功能是将多个文件复制到指定的目录中。

脚本解释:

  1. 检查参数数量:
    • if [ $# -lt 2 ]: 判断输入参数是否少于2个。
    • 如果参数不足,则输出使用说明 Usage: $0 Dir file1 file2 ... 并退出脚本。
  2. 检查目录:
    • test ! -d $1 && echo 'Parameter 1 must be a directory' && exit 1
    • 检查第一个参数是否为目录,如果不是目录,则输出错误信息并退出。
  3. 循环复制文件:
    • DIR=$1; shift: 将第一个参数(目录)赋值给变量 DIR,并将其从参数列表中移除。
    • for i in do ... done: 循环处理剩余的参数,每个参数代表一个文件名。
      • test ! -f $i && echo 'Error: $i is not an ordinary file or Does not exist' && continue;
        • 检查当前参数是否为普通文件且存在,如果不是,则输出错误信息并跳过该文件,继续处理下一个参数。
      • cp -i $i $DIR
        • 使用 cp -i 命令将文件复制到指定目录,-i 选项会在目标文件已存在时提示用户是否覆盖。
  4. 脚本结束
Bash脚本实现批量文件复制到指定目录

原文地址: https://www.cveoy.top/t/topic/jjPP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录