如何编写一个linux脚本,将一个目录下的所有文件和目录复制到另一个目录?

时间:2016-04-24 02:26:16

标签: linux

我正在尝试创建的脚本有点问题。

此脚本应采用两个参数,即源目录和目标目录,如果用户输入少于2个参数,则应打印出错误消息并退出。此外,此脚本应检查源目录是否存在,如果不存在,则应打印出错误消息并退出。此外,脚本应检查目标目录是否存在,如果不存在,则应创建该目录。最后,脚本应该将文件从源目录复制到目标目录。

这是我到目前为止的尝试:

if (( $# < 2 ));
   echo "Error: Too few arguments supplied"
   exit 1
if [ -d "src_dir" ]
then
    echo "Directory src_dir exists."
else
    echo "Error: Directory src_dir does not exist."
fi

if [ -d "dst_dir" ]
then
    echo "Directory dst_dir exists."
else
    mkdir dst_dir
    cp -r src_dir/* dst_dir
fi

任何帮助都会非常感激。提前谢谢!

1 个答案:

答案 0 :(得分:1)

用于检查正确的参数数量:Check number of arguments passed to a Bash script

if [ "$#" -ne 2 ]; then
    echo "Error: Too few arguments supplied"
    exit 1
fi

检查目录是否存在:Check if a directory exists in a shell script

if [ ! -d "$1" ]; then
    echo "Error: Directory $1 does not exist."
    exit 1
fi

用于在第二个参数上创建目录:How to use Bash to create a folder if it doesn't already exist?

mkdir -p $2

最后,只需复制它们:

cp -r $1/* $2/