重命名Mac上的文件(扩展名)而不更改创builddate?

我有几个.JPG文件,我希望他们是.jpg文件,但每个build议重命名脚本使用“mv”和手册页(在山狮子)MV说,它做了副本和删除,这就解释了为什么当我运行脚本“创build/修改/等”date全部更改为当前date。 我不希望这样的事情发生。 我能做什么?

所以,我想弄乱这些。 我甚至发现了一个很好的旧文件,2006年进行了修改。

$ stat -f "%m%t%Sm %N" * 1347657595 Sep 14 23:19:55 2012 1.JPG 1347715529 Sep 15 15:25:29 2012 2.JPG 1156277764 Aug 22 22:16:04 2006 3.JPG 1347657554 Sep 14 23:19:14 2012 4.JPG 1347657554 Sep 14 23:19:14 2012 5.JPG 1347741772 Sep 15 22:42:52 2012 6.JPG 

为他们做一个新的目录

 $ mkdir renamed 

用一个循环遍历它们

 $ for i in *.JPG ; do cp -p $i renamed/`echo $i|sed 's/JPG$/jpg/g'` ; rm $i ; done 

现在,他们在newdir并从当前的目录中删除。 但我们希望他们回来 – 不能使用mv。

 $ for i in renamed/* ; do cp -p $i . ; rm $i ; done $ rm -rf renamed/ 

Tadaa

 $ stat -f "%m%t%Sm %N" * 1347657595 Sep 14 23:19:55 2012 1.jpg 1347715529 Sep 15 15:25:29 2012 2.jpg 1156277764 Aug 22 22:16:04 2006 3.jpg 1347657554 Sep 14 23:19:14 2012 4.jpg 1347657554 Sep 14 23:19:14 2012 5.jpg 1347741772 Sep 15 22:42:52 2012 6.jpg 

使用touch -r将一个文件的时间戳设置为另一个文件。

 cp oldfile newfile touch -r oldfile newfile 

那个touch说:“设置newfile的时间戳到oldfile的时间戳。

这里有一篇关于touch的博文,以及如何使用它 。

尽pipe如此,所有的复制+触摸都不是必须的。 你说手册说“MV说它做了一个复制和删除”,但这不是准确的。 我想你可能会误解它。 您应该可以使用mv来重命名文件。 您可能会遇到一个问题,因为在HFS +,Mac文件系统中,文件名是不区分大小写的,所以“foo.jpg”和“FOO.JPG”是一样的。