Bash

將目前日期從變數附加到文件名

  • April 13, 2017

我正在嘗試將目前日期附加到文件名的末尾,如下所示:

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.

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