2017-07-12 52 views
0

我在嘗試創建一個腳本,它將根據當前時間和日期創建一個文件夾。然後,我需要該腳本將文件從源文件夾複製到新創建的文件夾。然後我需要它將文件夾從第二個源文件夾複製到原始源文件夾,覆蓋其中的所有內容。根據日期/時間創建目錄並將文件複製到它?

下面是我嘗試過的,它的失敗在一個史詩般的時尚。

#!/bin/bash 

d="/home/$(date +%d-%m-%y")" 
mkdir "$d" 
cp /home/test "$d" 
cp /home/test2 /home/test 

我知道,我沒有定義的變量,副本之間的時間應該是秒,而不是失效了一天,但我想,以確保和誠實,我很感興趣學習在腳本中使用變量。

+0

請看看: – Cyrus

+0

你說你需要http://www.shellcheck.net/ _ 「從源文件夾複製文件」_但只有'/ home/test'是_file_時,'cp/home/test somewhere'纔會起作用。你可以用'cp/home/test/*/some/dir /'或'cp -r/home/test/some/dir /' –

+0

*「......這是一種非常史詩式的失敗。」問題陳述不是很有幫助。請詳細說明它是如何失敗的。 – jww

回答

0

有太多了雙引號的位置:

d="/home/$(date +%d-%m-%y")" 

其實沒有引號是必要這裏可言,這樣寫:

d=/home/$(date +%d-%m-%y) 

在腳本的其餘部分,如果您想複製目錄,則需要使用cp -r而不是簡單的cp

最後要注意,當你這樣做時cp -r dir1 dir2已經dir2存在,那麼dir1將裏面dir2複製,而不是覆蓋它的內容。也就是說,它會創建dir2/dir1。如果dir1不包含隱藏文件,那麼你可以這樣寫覆蓋的dir2內容:

cp -r dir1/* dir2/ 
+0

謝謝,這工作! – Ryan

+0

@Ryan如果這回答了您的問題,那麼也許您可以將其標記爲已接受(請參閱投票按鈕下方的複選標記) – janos

相關問題