Shell
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 名稱並將日期也添加到其中。
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