递归地替换linux文件和文件夹名称,例如“0”m-%d-%y.tar“;其实际创建月/日/年

递归地替换linux文件和文件夹名称,例如“0”m-%d-%y.tar“;其实际创建月/日/年,linux,bash,Linux,Bash,我要找的东西像,但它的原始创建日期,而不是当前日期 示例:此文件夹(下面的输出来自Linux命令ls-ltr) 将其文件名更改为“04-26-20”。由于缺少一些信息,我尝试做出假设,并总体上展示可能的解决方法 正如在评论中已经提到的,对于像EXT3这样的文件系统来说,没有任何问题。可以使用可通过stat命令收集的修改时间,即 MTIME=$(stat --format="%y" \"%m-%d-%y\" | cut -d " " -f 1) 。。。甚至访问时间或更改时间 MTIME的日期以%

我要找的东西像,但它的原始创建日期,而不是当前日期

示例:此文件夹(下面的输出来自Linux命令
ls-ltr


将其文件名更改为“04-26-20”。

由于缺少一些信息,我尝试做出假设,并总体上展示可能的解决方法

正如在评论中已经提到的,对于像EXT3这样的文件系统来说,没有任何问题。可以使用可通过
stat
命令收集的修改时间,即

MTIME=$(stat --format="%y" \"%m-%d-%y\" | cut -d " " -f 1)
。。。甚至访问时间或更改时间

MTIME
的日期以
%Y-%m-%d
格式给出,可以通过

FNAME=$(date -d ${MTIME} +%m-%d-%y)
然后可以重命名该目录,即

mv \"%m-%d-%y\" ${FNAME}

这当然会改变目录文件系统中的时间戳。

由于缺少一些信息,我尝试做出假设,并总体上展示一种可能的解决方法

正如在评论中已经提到的,对于像EXT3这样的文件系统来说,没有任何问题。可以使用可通过
stat
命令收集的修改时间,即

MTIME=$(stat --format="%y" \"%m-%d-%y\" | cut -d " " -f 1)
。。。甚至访问时间或更改时间

MTIME
的日期以
%Y-%m-%d
格式给出,可以通过

FNAME=$(date -d ${MTIME} +%m-%d-%y)
然后可以重命名该目录,即

mv \"%m-%d-%y\" ${FNAME}

这当然会更改目录文件系统中的时间戳。

Apr 26
不是创建日期。您需要考虑如何处理具有相同日期的两个目录。你认为TAR文件是一个目录吗?在Linux没有这样的“创造”时间。一些类似unix的操作系统确实有“出生”时间戳,创建日期是否可用取决于使用的文件系统。请参阅:抱歉…意味着修改时间(在我的情况下,它不会被修改)
4月26日
不是创建日期。您需要考虑如何处理具有相同日期的两个目录。你认为TAR文件是一个目录吗?在Linux没有这样的“创造”时间。一些类似unix的操作系统确实有“出生”时间戳,创建日期是否可用取决于使用的文件系统。请参阅:抱歉…意味着修改时间(在我的情况下,它将不会被修改,否则)