好吧,我是一个linux新手,我在使用一个简单的bash脚本时遇到了问题。
我有一个程序,可以在运行时添加到日志文件中。随着时间的推移,日志文件会变得很大。我想创建一个启动脚本,它将在每次运行之前重命名和移动日志文件,有效地为程序的每次运行创建单独的日志文件。这是我到目前为止所得到的:
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
运行时,我看到以下内容:
: command not found
program
当我cd到logs目录并运行dir时,我看到以下内容:
201111211437\r.log\r
到底怎么回事?我假设我遗漏了一些语法问题,但我似乎找不到答案。
更新:多亏了shellter下面的评论,我发现这个问题是由于我在windows的Notepad++中编辑.sh文件,然后通过ftp发送到服务器,我在服务器上通过ssh运行该文件。在文件上运行dos2unix之后,它就可以工作了。
新问题:如何正确地保存文件,以避免每次重新发送文件时都必须执行此修复?
发布于 2011-11-22 23:22:55
mv server.log logs/$(date -d "today" +"%Y%m%d%H%M").log
发布于 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
发布于 2019-09-25 18:36:02
我使用这个命令简单地旋转一个文件:
mv output.log `date +%F`-output.log
在本地文件夹中,我有2019-09-25-output.log
https://stackoverflow.com/questions/8228047
复制相似问题