亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3458 | 回復(fù): 10
打印 上一主題 下一主題

如何查找并還原最新的備份文件??[已解決] [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-02-18 14:22 |只看該作者 |倒序瀏覽
xx目錄下有A、B、C3個文件,為備份時生成,帶有日期戳,即A.090218、B.090218、C.090218。
隨著時間推移,可能會有不同日期戳的文件,比如:A.090218、A.090217、A.090216;B.090218、B.090217、B.090216;C.090218、C.090217、C.090216。

現(xiàn)需要將它們中最新的一批文件(A、B、C)選出并打印到屏幕,然后cp到原來的目錄,去掉末尾的日期戳(.%y%m%d):
A文件到aa目錄、B文件到bb目錄、C文件到cc目錄,請問如何實現(xiàn)?

請給個思路。謝謝。

[ 本帖最后由 guorui913 于 2009-2-19 13:55 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2009-02-18 14:37 |只看該作者
原帖由 guorui913 于 2009-2-18 14:22 發(fā)表
xx目錄下有A、B、C3個文件,為備份時生成,帶有日期戳,即A.090218、B.090218、C.090218。
隨著時間推移,可能會有不同日期戳的文件,比如:A.090218、A.090217、A.090216;B.090218、B.090217、B.090216;C.0 ...



FILE="A B C"

for i in $FILE
do
DIR=$(echo $i$i |tr 'A-Z' 'a-z')
cp $(ls -t ${i}* |head -1) /${DIR}/$i
done

[ 本帖最后由 Nikolai 于 2009-2-18 14:46 編輯 ]

論壇徽章:
0
3 [報告]
發(fā)表于 2009-02-18 14:42 |只看該作者
原帖由 Nikolai 于 2009-2-18 14:37 發(fā)表

FILE="A B C"

for i in $FILE
do
mv $(ls -t $i |head -1) $i
done


真正的文件名并非A、B、C,而是帶有日期后綴的,
這個方法的話是不是要改成:
DATE=$(date +%y%m%d)
FILE='A\$DATE B\$DATE C\$DATE’
??

論壇徽章:
0
4 [報告]
發(fā)表于 2009-02-18 14:45 |只看該作者
原帖由 guorui913 于 2009-2-18 14:42 發(fā)表


真正的文件名并非A、B、C,而是帶有日期后綴的,
這個方法的話是不是要改成:
DATE=$(date +%y%m%d)
FILE='A\$DATE B\$DATE C\$DATE’
??



你不是要最新的嗎?
我更新了一些. 你看看, 文件名是什么你就套進(jìn)去咯. 和日期沒關(guān), ls -t ${i}*|head -1就已經(jīng)把最新那個列出來了.

論壇徽章:
0
5 [報告]
發(fā)表于 2009-02-18 14:47 |只看該作者
原帖由 Nikolai 于 2009-2-18 14:37 發(fā)表

DIR=$(echo $i$i |tr 'A-Z' 'a-z')


sorry,剛才沒說清楚,aa、bb、cc這3個目錄是已經(jīng)存在的目錄,并非需要生成的,aa也沒有具體含義,理解成“dir1、dir2、dir3”也可以。

修改后的應(yīng)該可以,謝謝!

[ 本帖最后由 guorui913 于 2009-2-18 14:54 編輯 ]

論壇徽章:
0
6 [報告]
發(fā)表于 2009-02-18 20:43 |只看該作者

回復(fù) #1 guorui913 的帖子

xx目錄下運行,時間戳前的文件名及對應(yīng)的目錄(絕對路徑)修改file1 file2 file3變量值
  1. #!/bin/ksh
  2. file1="/tmp/1:a"
  3. file2="/tmp/2:b"
  4. file3="/tmp/3:c"
  5. for i in $file1 $file2 $file3
  6. do
  7.   name=`echo $i | awk -F ":" '{print $2}'`
  8.   dir=`echo $i | awk -F ":" '{print $1}'`
  9.   ls -t1 $name* | awk 'NR==1'
  10.   for file in `ls -t1 $name* | awk 'NR==1'`
  11.   do
  12.     \cp -f $file $dir/$name
  13.   done
  14. done
復(fù)制代碼

論壇徽章:
0
7 [報告]
發(fā)表于 2009-02-19 10:44 |只看該作者

回復(fù) #6 ywlscpl 的帖子

兄弟的方法不錯,有更簡便的辦法么?

我的想法是找出XX目錄下最新的3個文件(因為A、B、C3個文件幾乎是同時備份的),然后去掉最后的".%y%m%d",然后根據(jù)名稱分別CP到不同的目錄即可。這樣做復(fù)雜么?

論壇徽章:
0
8 [報告]
發(fā)表于 2009-02-19 11:05 |只看該作者

回復(fù) #7 guorui913 的帖子

每次敲一串命令復(fù)雜還是敲一個命令復(fù)雜?

論壇徽章:
0
9 [報告]
發(fā)表于 2009-02-19 12:10 |只看該作者
原帖由 ywlscpl 于 2009-2-19 11:05 發(fā)表
每次敲一串命令復(fù)雜還是敲一個命令復(fù)雜?


我的意思也是做成腳本,不過我剛才的說的就是不用再去取路徑了,其實都一樣,再次感謝!

論壇徽章:
0
10 [報告]
發(fā)表于 2009-02-19 13:03 |只看該作者

回復(fù) #6 ywlscpl 的帖子

在shell中執(zhí)行的時候告訴我文件沒有找到,但是直接執(zhí)行
ls -t1 $name* | awk 'NR==1'
這段沒有問題。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP