2016-04-24 23 views
-3

我正在尝试创建一个脚本,它有点问题。如何编写一个将一个目录下的所有文件和目录复制到另一个目录的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 

任何帮助将非常感激。提前致谢!

+0

你有什么问题?发生了什么,你期望发生什么? –

+0

将代码粘贴到http://shellcheck.net(在顶部添加一个“she-bang”行,即'#!/ bin/bash')。祝你好运。 – shellter

回答

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 

负责就第二个参数的DIR:How to use Bash to create a folder if it doesn't already exist?

mkdir -p $2 

最后,只是全部复制:

cp -r $1/* $2/ 
相关问题