gpt4 book ai didi

Linux mv 命令时间加空格

转载 作者:太空宇宙 更新时间:2023-11-04 05:24:30 26 4
gpt4 key购买 nike

这是我的 bash 脚本,用于将 csv 文件复制到一个新文件,该文件的末尾添加了时间戳,然后复制到另一个服务器。

#!/bin/bash
timestamp=`date +"%Y%m%d%H%M%S"`
ssh root@172.16.1.125 mv /var/log/asterisk/cdr-csv/Master.csv /var/log/asterisk/cdr-csv/Master.csv.$timestamp
scp root@172.16.1.125:/var/log/asterisk/cdr-csv/Master.csv.$timestamp /opt/logs/asterisk/Master.csv.$timestamp

但这会在文件末尾添加两个空格。示例:

原始文件:test.csv
MV文件:test.csv.20160204083042(空格)(空格)

然后,当 scp 尝试查找该文件时,由于末尾有空格,它无法归档该文件。我已经放弃了,因为我已经尝试了所有的变化。

最佳答案

每一步都检查脚本。您所描述的情况不应该发生:

$ date +"%Y%m%d%H%M%S" | xxd
0000000: 3230 3136 3032 3034 3138 3034 3438 0a 20160204180448

输出中有一个换行符,但当您分配给变量时它会消失,因此 $timestamp 将是干净的。

变量中的任何空格也会在 ssh/scp 行中消失,因为您的文件没有被引用 - 即使末尾有空格,在解析命令时也会被删除。

为了确保这一点,您可以通过管道输出,或将变量回显到 xxd,如本例所示。如果它们确实发生,您实际上会看到这些空间。

或者发布整个脚本(我假设这是一个经过编辑的版本)

关于Linux mv 命令时间加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com