如何“ cd”到使用“ mkdir $(date'+%d-%b-%Y')”创建的目录

时间:2019-02-18 06:03:58

标签: bash

mkdir $(日期'+%d-%b-%Y')

然后将cd转到动态创建的目录

如何“ cd”到使用“ mkdir $(date'+%d-%b-%Y')”创建的目录,并通过进入bash脚本中已创建的目录进行操作

3 个答案:

答案 0 :(得分:3)

简单的方法是,将目录名称存储在变量中

    dirname=$(date '+%d-%b-%Y')
    if [ -n "$dirname" ]; then
        mkdir "$dirname"
        if [ -d "$dirname" ]; then
            cd "$dirname"
        fi
    fi

添加了一些错误处理,并且如果您的文件是在Windows中编写并在Unix环境中运行的,反之亦然,我建议您使用dos2unix来处理新的行字符转换(这适用于?中看到ls个字符OP。

答案 1 :(得分:0)

你能告诉我你的情况吗?

在大多数情况下,您不应cd进入目录。改用绝对路径:

良好做法:

mkdir /tmp/mydir/
cp -R /usr/local/example/ /tmp/mydir/
sed 's/foo/bar/g' /tmp/mydir/afile

不良做法:

mkdir /tmp/mydir/
cd /tmp/mydir/
cp -R /usr/local/example/ .
sed 's/foor/bar/g' afile

P.S。 主题:

$ mkdir $(date '+%d-%b-%Y')
$ cd $(date '+%d-%b-%Y')
$ pwd
/Users/user/18-Feb-2019

答案 2 :(得分:0)

在Bash中,$_扩展到上一个命令的最后一个参数。因此,您可以这样做:

mkdir $(date '+%d-%b-%Y')
cd $_

在真正的Bash程序中,您需要引用扩展(在代码上使用Shellcheck来检查缺少的引号),并检查mkdircd上的错误。