Shell

mv 和添加日期的問題

  • June 30, 2016

我希望能夠將 $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 名稱並將日期也添加到其中。

shell 看到$oldfile_未定義的變數。您可以改為使用${oldfile}_來解決此問題。

但是,您真的要保留舊文件的路徑嗎?如果沒有,請使用

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

這是我在 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

引用自:https://unix.stackexchange.com/questions/82657