Bash
將目前日期從變數附加到文件名
我正在嘗試將目前日期附加到文件名的末尾,如下所示:
TheFile.log.2012-02-11
這是我到目前為止所擁有的:
set today = 'date +%Y' mkdir -p The_Logs & find . -name The_Logs -atime -1 -type d -exec mv \{} "The_Logs_+$today" \; &
但是我得到的只是文件的名稱,它什麼都不附加。如何將目前日期附加到文件名?
很可能是您使用
set
. 這會將 ’today’、’=’ 和date
程序的輸出分配給位置參數(也稱為命令行參數)。您只想使用 C shell(您將其標記為“bash”,因此很可能不會),您將需要使用:today=`date +%Y-%m-%d.%H:%M:%S` # or whatever pattern you desire
注意等號周圍沒有空格。
你也不想
&
在你的陳述結束時使用;這會導致 shell 不等待命令完成。尤其是當一個依賴於下一個時。該find
命令可能會失敗,因為它在mkdir
.