如何在linux中创建特定于日期的文件夹

时间:2014-02-11 22:59:19

标签: linux bash unix

我在linux中很天真并在我正在开发的一个脚本中寻找指导

我有一条路:

  

/数据/毫米/ MS

我想生成一个脚本,为上述路径中的每一天创建特定于日期的文件夹。 这是我创建的但不完整的

dir= dd/mm/ms                       //Existing directory
DIR_DATE=$(`date +%Y%m%d`)          //todays date stored inside a variable   
CREATE_DIR= mkdir $dir/$DIR_DATE      // want to create a date specific dir inside $dir 

但是下面的代码不起作用,你能帮我解决一下如何获得结果:

DD / MM / MS / 20140211

DD / MM / MS / 20140212

依旧......

我意识到第3行的代码

CREATE_DIR= mkdir $dir/$DIR_DATE

不正确,我需要更改,但不知道如何


我更新了我的代码,见下文:

#!/bin/bash
dir= "/data/mvr/MasterFiles/testing"
DIR_DATE=$(date +%Y%m%d) 
CREATE_DIR="${dir}/${DIR_DATE}"
mkdir "${CREATE_DIR}" || echo "Error creating directory ${CREATE_DIR}"

我重申我的问题,我想在现有目录中创建日期特定文件夹

  

现有目录:/ data / mm / ms

需要为此现有文件夹路径中的每一天创建特定于日期的文件夹

  

例如/ data / mm / ms / 20140211

     

/数据/毫米/ MS / 20140212

     

等等

2 个答案:

答案 0 :(得分:3)

您需要参考命令替换:

dir="/data/mm/ms"
DIR_DATE=$(date +%Y%m%d)
CREATE_DIR="${dir}/${DIR_DATE}"
mkdir "${CREATE_DIR}" || echo "Error creating directory ${CREATE_DIR}"

话说:

var= value

将尝试使用变量value未设置执行命令var

此外,您使用$(command)形式进行命令替换;反推是另一种方式。你好像把两者合二为一。那是另一个错误。

答案 1 :(得分:1)

看起来你走在正确的轨道上。这可能会更好:

#!/bin/bash
dir=/data/mm/ss
DIR_DATE=`date +%Y%m%d` # not sure on the Y, m, and d -- check man pages

mkdir ${dir}/${DIR_DATE}

# check exit code
if [ $? -ne 0 ]; then
   # error! print something to the user
   exit 1
fi

exit 0