首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在BASH中使用mv为文件名添加时间戳

在BASH中使用mv为文件名添加时间戳
EN

Stack Overflow用户
提问于 2011-11-22 22:01:46
回答 6查看 173.7K关注 0票数 90

好吧,我是一个linux新手,我在使用一个简单的bash脚本时遇到了问题。

我有一个程序,可以在运行时添加到日志文件中。随着时间的推移,日志文件会变得很大。我想创建一个启动脚本,它将在每次运行之前重命名和移动日志文件,有效地为程序的每次运行创建单独的日志文件。这是我到目前为止所得到的:

pastebin

代码语言:javascript
运行
复制
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program

运行时,我看到以下内容:

代码语言:javascript
运行
复制
: command not found
program

当我cd到logs目录并运行dir时,我看到以下内容:

代码语言:javascript
运行
复制
201111211437\r.log\r

到底怎么回事?我假设我遗漏了一些语法问题,但我似乎找不到答案。

更新:多亏了shellter下面的评论,我发现这个问题是由于我在windows的Notepad++中编辑.sh文件,然后通过ftp发送到服务器,我在服务器上通过ssh运行该文件。在文件上运行dos2unix之后,它就可以工作了。

新问题:如何正确地保存文件,以避免每次重新发送文件时都必须执行此修复?

EN

回答 6

Stack Overflow用户

发布于 2011-11-22 23:22:55

代码语言:javascript
运行
复制
mv server.log logs/$(date -d "today" +"%Y%m%d%H%M").log
票数 92
EN

Stack Overflow用户

发布于 2015-09-08 16:09:22

bash中的单行方法的工作方式如下所示。

有些输出大于$(date "+%Y.%m.%d-%H.%M.%S").ver

将创建一个带有ver扩展名的时间戳名的文件。列出快照到日期戳文件名的工作文件如下所示,可以显示其工作。

find . -type f -exec ls -la {} \; | cut -d ' ' -f 6- >$(date "+%Y.%m.%d-%H.%M.%S").ver

当然了

cat somefile.log > $(date "+%Y.%m.%d-%H.%M.%S").ver

或者更简单

ls > $(date "+%Y.%m.%d-%H.%M.%S").ver

票数 10
EN

Stack Overflow用户

发布于 2019-09-25 18:36:02

我使用这个命令简单地旋转一个文件:

代码语言:javascript
运行
复制
mv output.log `date +%F`-output.log

在本地文件夹中,我有2019-09-25-output.log

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8228047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档