2014-02-11 46 views
0

我天真在linux和腳本的人找一個指導我開發如何創建在Linux

日期特定的文件夾我有一個路徑:

/數據/ MM/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

需要創建這個現有的文件夾路徑中的每一天日期的特定文件夾

如/數據/ MM/MS/20140211

/數據/ MM/MS/20140212

+1

好的,你的問題是什麼? – Martin

+0

你想要'mkdir -p $(日期+%Y%m%d)'嗎? – bobah

回答

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 

將試圖與可變var未設置要執行的命令value

此外,您使用表格$(command)進行命令替換;反引號是另一種方式。你似乎把兩者結合起來了。那是另一個錯誤。

+0

哦,我明白你在上面的代碼中做了什麼,但是不太明白這個var = value –

+0

使用mkdir -p「$ {CREATE_DIR}」,如果目錄已經存在,則不會產生錯誤。 – Matt

+0

@Rahulsawant指'dir = dd/mm/ms'。我確定你也會收到該行的錯誤。 – devnull

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 
+0

哦,讓我馬上試試。謝謝 –

+0

使用上面它給我一個錯誤說:./ testing:第4行:/ data/mm/ms:是一個目錄 mkdir:無法創建目錄'/ 20140211':權限被拒絕 –

+0

任何想法爲什麼導致我做有權限到文件夾 –