相关疑难解决方法(0)

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

好吧,我是一个linux新手,我遇到了一个简单的bash脚本问题.

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

引擎收录

DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
Run Code Online (Sandbox Code Playgroud)

运行时,我看到了这个:

: command not found
program
Run Code Online (Sandbox Code Playgroud)

当我cd到logs目录并运行dir时,我看到:

201111211437\r.log\r
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?我假设有一些我缺少的语法问题,但我似乎无法弄明白.


更新:感谢下面的shellter评论,我发现问题是由于我在Windows中的Notepad ++中编辑.sh文件,然后通过ftp发送到服务器,我通过ssh运行文件.在文件上运行dos2unix后,它可以工作.

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

linux bash

76
推荐指数
6
解决办法
15万
查看次数

在linux中将日期附加到文件名

我想在文件名旁边添加日期("somefile.txt").例如:somefile_25-11-2009.txt或somefile_25Nov2009.txt或其他任何效果

也许脚本会在终端窗口中执行或执行某些命令.我正在使用Linux(Ubuntu).

提前致谢.

哦,我几乎忘了添加脚本或命令应该每次要将文件保存到特定文件夹但仍保留以前的文件时将文件名更新为新的日期.所以文件夹中最终会有这样的文件:filename_18Oct2009.txt,filename_9Nov2009.txt,filename_23Nov2009.txt

linux ubuntu filenames rename append

26
推荐指数
5
解决办法
7万
查看次数

如何用文件名中的今天创建一个文件

指令1:

$ touch test"date"
Run Code Online (Sandbox Code Playgroud)

指令2:

$ date +"%F"
2018-01-16
Run Code Online (Sandbox Code Playgroud)

我希望能够运行命令以便test_2018-01-16创建文件。如何或可以结合以上两个命令来执行此操作?

$ touch test_"date"
Run Code Online (Sandbox Code Playgroud)

EDIT1-答案

ks

这些命令

touch fred-`date +%F`
touch "test-$(date +%F)"
touch "test2_$(date +"%F %T")"
Run Code Online (Sandbox Code Playgroud)

分别提取以下文件

fred-2018-01-16
test-2018-01-16
test2_2018-01-16 11:51:53
Run Code Online (Sandbox Code Playgroud)

linux bash

0
推荐指数
1
解决办法
2973
查看次数

标签 统计

linux ×3

bash ×2

append ×1

filenames ×1

rename ×1

ubuntu ×1