2012-10-26 27 views
1

我有一組目錄,我想搜索,即猛砸搜索和複製使用變量

/home/*/Documents/Crashes 

,我想拉這些文件的格式爲:

A.log.20121022T160949Z,其中前幾個數字是日期(這裏是2012/10/22)。

我有一個文本文件,我從用戶名拉入,以$ line的形式讀入。

我只想從當前日期提取文件。我已經嘗試過了:

D= date +%Y%m%d%t 
cp -ru /home/$line/Documents/Crashes/A.log.$D* /home/$USER/Documents/Todayslogs 

它將所有東西都拉出來。也試過找到沒有運氣...

我做錯了什麼?

回答

1

它更改爲:

D=$(date +%Y%m%d%t) 

$(...)的語法是 「命令替換」。在這個例子中,它需要打印的任何東西與date +%Y%m%d%t stdout並將其保存到D。 (注意:命令替換不包括stderr輸出,除非你明確地添加2>&1!)

D= date +%Y%m%d%t將只打印日期信息,而無需將其保存到D像你想標準輸出。

+0

我做了你所提到的調整。但是,現在 D = $(日期+%Y%m%d%t) cp -ru /home/$line/Documents/Crashes/A.log.$D*/home/ $ USER/Documents/Todayslogs 從/ home/$ USER/Documents中提取所有文件並將它們放入 /home/$ USER/Documents/Todayslogs – user1777905

1

你從來沒有設置D變量,你只運行date命令;

$ D= date +%Y%m%d%t 
20121026 
$ echo $D 
<... nadda ...> 

而是做:

$ D=$(date +%Y%m%d%t) 
$ echo $D 
20121026 
+0

$(xxx)和使用反標記之間有什麼區別? –

+2

@CraigWright'command'允許'$'反斜槓轉義,反標記和反斜槓。 '$(command)'形式沒有。 – twalberg