2011-07-19 60 views
1

進出口新的UNIX,我也查了很多信息,但仍穿上不是如何讓它在bashshell腳本進行排序和基於MV文件的日期

我知道什麼是使用這個命令ls -tr|xargs -i ksh -c "mv {} ../tmp/"移動文件逐個文件。

現在我需要製作一個腳本,按系統日期對所有這些文件進行排序,並將它們移動到一個目錄中,前1000個最舊的文件將被移動。

實例文件[R這樣的

KPK.AWQ07102011.66.6708.01
KPK.AWQ07102011.68.6708.01
KPK.EER07102011.561.8312.13
KPK.WWS07102011.806.3287.13

-----------這是劇本達I HV創建了--- ----

if [ ! -d /app/RAID/Source_Files/test/testfolder ] then  
       echo "test directory does not exist!"  
       mkdir /app/RAID/Source_Files/calvin/testfolder  
       echo "unused_file directory created!"  
fi 

echo "Moving xx oldest files to test directory" 

ls -tr /app/RAID/Source_Files/test/*.Z|head -1000|xargs -i ksh -c "mv {} /app/RAID/Source_Files/test/testfolder/" 

這個腳本的問題是
1)UNIX提示符語法ERRO「如果」
2)移動命令工作,但它創建一個新文件名testfolder代替移動到目錄testfolder(testfolder alredy在該路徑被創建)

任何人都可以幫我一把嗎?謝謝

+0

你是什麼意思「按日期排序」?根據日期將它們排序到不同的目錄中? –

回答

1

請問這有幫助嗎?

mv `ls -tr|head -1000` ../tmp/ 

head -n將前命令(這裏是1000個最舊的文件)的n個第一行。反引號允許將lshead命令的結果用作mv的參數。

+0

感謝您的回覆..我需要mk它在一個.sh文件..你可以幫我找出是我的腳本錯誤..謝謝 – user664481

+2

是不是你錯過了一個;在第一行? 'if [! -d/app/RAID/Source_Files/test/testfolder];然後' ,我會嘗試我的建議,我不知道你爲什麼需要xargs。 – newenglander

相關問題