【发布时间】:2014-07-09 15:04:24
【问题描述】:
我有一个包含这种文件的目录:
0 lrwxrwxrwx 1 utges_m gid36 12 May 17 2011 libedit.so -> libedit.so.2
0 lrwxrwxrwx 1 utges_m gid36 16 Apr 16 2009 libedit.so.2 -> libedit.so.2.0.9
352 -rw-r--r-- 1 utges_m gid36 358958 Mar 10 2010 libedit.so.2.0.9
我想复制文件和符号链接并保留日期。
我从这个命令开始:
cp -dp sourceDir/* destinationDir
结果是:
0 lrwxrwxrwx 1 siri gid33 12 Jul 9 16:38 libedit.so -> libedit.so.2
0 lrwxrwxrwx 1 siri gid33 16 Jul 9 16:38 libedit.so.2 -> libedit.so.2.0.9
356 -rw-r--r-- 1 siri gid33 358958 Mar 10 2010 libedit.so.2.0.9
所以,我写了这个简单的 bash 脚本:
cp -dp $OLDDIR/* $NEWDIR
ls $OLDDIR | while read f; do {
TS=$(stat -c '%Y' "$OLDDIR/$f")
DATE=$(date -d "UTC 1970-01-01 $TS secs")
echo "$f $DATE"
touch -d "${DATE}" "$NEWDIR/$f"
} done;
脚本输出为:
libedit.so Tue May 17 21:35:14 CEST 2011
libedit.so.2 Thu Apr 16 10:30:05 CEST 2009
libedit.so.2.0.9 Wed Mar 10 16:31:17 CET 2010
但不幸的是结果是:
0 lrwxrwxrwx 1 siri gid33 12 Jul 9 16:55 libedit.so -> libedit.so.2
0 lrwxrwxrwx 1 siri gid33 16 Jul 9 16:55 libedit.so.2 -> libedit.so.2.0.9
356 -rw-r--r-- 1 siri gid33 358958 Mar 10 2010 libedit.so.2.0.9
我做错了什么?
我正在使用 Red Hat Enterprise Linux ES 第 4 版(Nahant 更新 3)
【问题讨论】: