mv 和添加日期时出现问题

mv 和添加日期时出现问题

我希望能够将 $oldfile 移动到我的备份文件夹并将日期添加到文件名中。所以我尝试了这个...

mv $oldfile /home/u0146121/backupfiles/$oldfile_$(date +%F-%T)

这只是给我这个输出文件名。 (没有原始文件名)

2013-07-11-10:22:25

然后我意识到上述方法潜在的问题。我有一个 while 读取循环,它读取我想要比较的其他文件的路径名文本文件。例如,$oldfile 实际上是 =

 $ cat oldfiles.txt
 /home/u0146121/OldLogFiles/file2.txt

所以...我希望能够移动 file2.txt 并仅保留 file2.txt 名称并向其中添加日期。

答案1

shell 看到$oldfile_未定义的变量。您可以通过使用来解决这个问题${oldfile}_

但是,您真的想保留旧文件的路径吗?如果没有,请使用

mv $oldfile /home/u0146121/backupfiles/${oldfile##*/}_$(date +%F-%T)

答案2

这是我在 bash 中移动文件时添加时间戳的解决方案

#!/usr/bin/env bash

cd "FILES_LOCATION"
COPYDIR="NEW_FILE_LOCATION"

for file in *.FILE_EXTENSION; do
        NEWAPPEND=$(date +%s)
        cp $file "$COPYDIR"/"$NEWAPPEND"$file
        rm $file
done

相关内容