我希望能够将 $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