Linux脚本创建名称为datestamp的新目录

时间:2018-08-25 00:49:41

标签: linux ubuntu syntax

当前脚本可以正常运行,但是输出略微关闭。这就是我到目前为止所拥有的。

echo "Which client are we backing up today? Choose one below."
ls -la /usr/local/nagios/etc/objects/Clients | awk '{print $9}'

read varname

cd /usr/local/nagios/etc/objects/Clients/$varname

while true; do
    read -p "Backup files located in nagtech/backup to current client directory? (y/n) "  yn
    case $yn in
            [Yy]* ) cp -r /home/nagtech/backup $varname > mkdir$(date +m%-%d-%y); break;; 
            [Nn]* ) exit;;
    * ) echo "Please anwser yes or no.";;
    esac
done

我的意图是创建一个新的DIRECTORY并用当前日期戳命名(如果输入为y)。但是,它不完全在那里。下面是输入“ y”并将$ varname设置为“ HELP”时的示例输出。

drwxr-xr-x  4 root root 4096 Aug 24 17:45 .
drwxr-xr-x 16 root root 4096 Aug 22 18:36 ..
drwxr-xr-x  2 root root 4096 Aug 22 18:38 08.22.18
-rw-r--r--  1 root root    0 Aug 24 17:45 mkdirm%d-18
drwxr-xr-x  3 root root 4096 Aug 24 17:45 HELP

1 个答案:

答案 0 :(得分:0)

cp的目的地是命令的第二个参数。您使用日期作为文件名来重定向输出,但是cp不会产生任何输出。

您需要执行mkdir命令来创建目录,然后将其用作cp命令的目标。

[Yy]* ) newdir=$(date +m%-%d-%y)
        mkdir "$newdir"
        cp -r /home/nagtech/backup "$newdir"
        ;;