51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Linux复制文件夹到另一个目录shell脚本实现

今天,一位QQ好友来问我:

你好,请问你懂虚拟机吗?知道怎么编写shell脚本,将指定目录下的所有文件复制到另一个目录中吗?

你好,请问你懂虚拟机吗?知道怎么编写shell脚本,将指定目录下的所有文件复制到另一个目录中吗?

估计是期末考试用吧!

现在不是流行AI吗?下面就是我随手问AI生成并整理了一份给他的内容,也足够他用了。

一、下面是一个简单的Shell脚本,用于将一个指定目录下的所有文件复制到另一个指定目录:

                      #!/bin/bash

检查参数数量
======



if \[ "$#" -ne 2 \]; then
echo "Usage: $0 SOURCE_DIR TARGET_DIR"
exit 1
fi


定义源目录和目标目录
==========



SOURCE_DIR=$1
TARGET_DIR=$2


检查源目录是否存在
=========



if \[ ! -d "$SOURCE_DIR" \]; then
echo "Source directory $SOURCE_DIR does not exist."
exit 1
fi


检查目标目录是否存在,如果不存在则创建
===================



if \[ ! -d "$TARGET_DIR" \]; then
echo "Target directory $TARGET_DIR does not exist. Creating..."
mkdir -p "$TARGET_DIR"
fi


复制所有文件从源目录到目标目录
===============



cp -r "$SOURCE_DIR"/\* "$TARGET_DIR"


检查复制操作是否成功
==========


`if [ $? -eq 0 ]; then
echo "所有文件都已成功从 $SOURCE_DIR 复制到 $TARGET_DIR."
else
echo "复制文件时出错."
exit 1
fi
`

二、使用说明:

1、将上述脚本保存为一个文件,例如 copy_files.sh

2、给予脚本执行权限:

                      chmod +x copy_files.sh

三、运行脚本,并指定源目录和目标目录:

例如:

                      ./copy_files.sh /path/to/source/dir /path/to/target/dir

四、脚本说明:

                      #!/bin/bash:指定使用Bash解释器。
if [ "$#" -ne 2 ]; then ... fi:检查参数数量是否为2个(源目录和目标目录)。
SOURCE_DIR=$1 和 TARGET_DIR=$2:将传入的参数分别赋值给源目录和目标目录变量。
if [ ! -d "$SOURCE_DIR" ]; then ... fi:检查源目录是否存在。
if [ ! -d "$TARGET_DIR" ]; then ... fi:检查目标目录是否存在,如果不存在则创建。
cp -r "$SOURCE_DIR"/* "$TARGET_DIR":递归复制源目录中的所有文件到目标目录。
if [ $? -eq 0 ]; then ... else ... fi:检查复制操作是否成功,并输出相应信息。

这个脚本会将源目录中的所有文件和子目录复制到目标目录中。

如果你只想复制文件而不包括子目录,可以去掉 cp 命令中的 -r 选项。

赞(1)
未经允许不得转载:工具盒子 » Linux复制文件夹到另一个目录shell脚本实现