我有一個目錄,這種文件:Linux的如何複製符號鏈接和保存日期
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
出了什麼問題我做了什麼?
我使用紅帽企業Linux ES釋放4(Nahant更新3)
Thaks很多,我認爲你是對的。建議的命令輸出是:'touch:無效選項 - h'。 – Lety
不客氣,但可以肯定的是:你真的使用_GNU_' touch'嗎? 'touch --version'返回什麼? '無效選項'表明這個選項不被支持_at all_(不是語法的一部分),但是,我猜可能它已經從系統上的GNU'touch'版本中刪除了。 – mklement0
這是'touch --version'的輸出:'touch(coreutils)5.2.1'和'uname -a'的輸出是:'Linux itmi01vl100.milano.it 2.6.9-78.0.1.ELsmp# 1 SMP Tue Jul 22 18:11:48 EDT 2008 i686 i686 i386 GNU/Linux' – Lety