Linux 如果不同,则复制并重命名为日期和时间戳
因此,我有一个文件,我想复制,如果它已被修改。我想在它的新位置将其保存为日期和时间Linux 如果不同,则复制并重命名为日期和时间戳,linux,bash,shell,Linux,Bash,Shell,因此,我有一个文件,我想复制,如果它已被修改。我想在它的新位置将其保存为日期和时间 mv my_file.db $(date +%F) 此命令将移动它并将日期设置为名称,但会删除扩展名。我有3个不同的文件扩展名要移动。我还想有时间戳,因为我将复制每天多次 输入: sdfgdg.a abdfgs.b dfgdfg.c 所以通过跑步 mv * ../Folder 应产生: Folder/sdfgdg-2015-01-02-14:50:00.a Folder/abdfgs-2015-01-02-
mv my_file.db $(date +%F)
此命令将移动它并将日期设置为名称,但会删除扩展名。我有3个不同的文件扩展名要移动。我还想有时间戳,因为我将复制每天多次
输入:
sdfgdg.a
abdfgs.b
dfgdfg.c
所以通过跑步
mv * ../Folder
应产生:
Folder/sdfgdg-2015-01-02-14:50:00.a
Folder/abdfgs-2015-01-02-14:50:00.b
Folder/dfgdfg-2015-01-02-14:50:00.c
将此函数添加到~/.bashrc并将其源代码(
source~/.bashrc
)或使用第二个会话登录
function mymv() {
if [[ $# -lt 2 ]]; then
echo "Syntax error: missing aruments"
return 1
fi
target="${@: -1}" # last argument
d="$(date +%F-%T)"
while [[ $# -ge 2 ]]; do
file="$1"
mv -v "$file" "$target/${file%.*}-$d.${file##*.}"
shift
done
}
用法:
mymv file ... directory
例如:
mymv * ../Folder
mv foo.db$(日期+%F).db
?如果你想保留扩展名,你必须将其包含在目标文件名中…@MarcB我想到了这一点,但是扩展名发生了变化,现在还不知道。您还错过了时间。@MarcB那么时间呢?您没有得到您告诉它提供的日期,因为您的示例只有%F,这也是我使用的。如果您需要不同的格式,请告诉date
。。。