📜  bash 根据修改日期重命名文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:13:37.727000             🧑  作者: Mango

Bash 根据修改日期重命名文件

在Linux中,有时需要对一大批文件进行批量重命名,以更加清晰明了的方式来管理这些文件。本文将介绍如何使用Bash脚本,根据修改日期对文件进行批量重命名。

获取文件的修改日期

我们首先需要获取文件的修改日期,使用stat命令可以获取文件的相关属性,包括修改时间。下面是获取file.txt文件的修改时间的命令示例:

$ stat -c %y file.txt

输出结果为:

2022-01-10 12:34:56.789012345 +0800

我们可以使用cut命令对输出结果进行截取,获取文件的修改日期部分。下面是获取文件file.txt的修改日期的命令示例:

$ stat -c %y file.txt | cut -d " " -f1

输出结果为:

2022-01-10
批量重命名文件

接下来,我们使用Bash循环遍历某个目录下的所有文件,对每个文件进行重命名操作。假设我们要重命名的所有文件都是以.txt为后缀的文件。

下面是一个批量重命名文件的Bash脚本示例:

#!/bin/bash

dir="/path/to/directory"

cd "$dir"

for file in *.txt
do
    # 获取文件的修改日期
    dateString=$(stat -c %y "$file" | cut -d " " -f1)
    
    # 将修改日期和原文件名拼接成新的文件名
    newFilename="$dateString-$file"
    
    # 重命名文件
    mv "$file" "$newFilename"
done

在脚本中,$dir表示要批量重命名文件的目录;循环遍历目录下的所有.txt文件,获取它们的修改日期,将修改日期和原文件名拼接成新的文件名,最后执行mv命令将文件重命名。

总结

本文介绍了如何使用Bash脚本,根据文件的修改日期对文件进行批量重命名。这个技巧可以帮助我们更好地管理和组织文件,提高工作效率。