防止mkdir -p覆盖目录,防止cp覆盖文件

时间:2020-06-11 14:55:17

标签: linux mkdir cp

我有一个shell脚本,我想用它在那些目录中创建目录和文件。此脚本不要覆盖或删除任何文件或目录,这一点非常重要。因此,我想创建一个目录,该目录比脚本所在的目录高一个目录。在此目录中,我要创建两个子目录,在其中一个目录中,我要复制2个已有的文件,其中包含一些文本他们。

文件file1和file2始终与该脚本位于同一个目录中,并且它们中始终具有相同的内容,因此不要更改内容非常重要。我有多个这样的结构,它们只是名字不同。

所以我尝试了这个:

#! /bin/bash

echo "Enter directory name"
read dirname

mkdir -p ../$dirname/{dir1,dir2}
cp file1 file2 ../$dirname/dir2

但是,如果dirname已经存在,则此脚本将覆盖它,并且还将覆盖其中的所有内容。然后我尝试了这个:

#! /bin/bash

echo "Enter directory name"
read dirname

if [ -d $dirname ]
then
    echo "directory already exists"
else
    mkdir -p ../$dirname/{dir1,dir2}
    cp file1 file2 ../$dirname/dir2
fi

但是此脚本也会覆盖所有内容。如何制作此脚本,以便如果目录名已存在,则该脚本不会创建新目录,并且不会在任何目录中复制任何文件,即它什么都不做?

0 个答案:

没有答案
相关问题