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

它拉动了一切。也尝试找到没有运气...

我究竟做错了什么?

4

2 回答 2

1

将其更改为:

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

语法是$(...)“命令替换”。在此示例中,它将打印到 stdout 的任何内容date +%Y%m%d%t与保存到D. (注意:命令替换不包括 stderr 输出,除非您明确添加2>&1!)

这样做D= date +%Y%m%d%t只会将日期信息打印到标准输出,而不会将其保存为D您想要的。

于 2012-10-26T18:13:08.060 回答
1

你从来没有设置D变量,你只运行了 date 命令;

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

而是这样做:

$ D=$(date +%Y%m%d%t)
$ echo $D
20121026
于 2012-10-26T18:14:13.777 回答