2011-08-17 41 views
1

我需要找出上市在兩個不同時間之間的文件系統路徑(/home/user01/myapps/)更新已添加文件或文件夾/(腳本開始和結束時間) 。Unix命令用於查找更新和新添加的文件/文件夾

我運行一個Shell腳本做更新/添加新文件從不同的源資源路徑/home/user01/myapps/。所以,在腳本結尾,我想知道已添加或更新的文件或文件夾的列表。

我有下面的命令

查找/選擇/應用/ TDS/tdsbatch -mtime -1

但是,我不知道有關腳本運行時間。

確實有幫助!根據您的需要

# record the current time in seconds on script startup 
start_time=$(date +%s) 
... 
# do whatever you like 
... 
# to get the runtime in secods - if you like: 
runtime=$(($(date +%s) - start_time)) 
# to get the runtime in minutes (minutes are useful for -mmin find param) 
runtime=$((($(date +%s) - start_time)/60)) 
... 
# to record the finish time in seconds: 
end_time=$(date +%s) 

現在find

+0

你會怎麼做n'不確定腳本運行時間'。請更新您的問題以包含您需要的示例輸出。祝你好運。 – shellter

回答

4

要在任何需要的時候記錄時間。像

find /path \(-mmin $((-($(date +%s) - start_time)/60)) \ 
    -a $((($(date +%s) - end_time)/60)) \) 
  • 第一-mmin參數指定後體改(當前時間 - 腳本開始時間) - 腳本結束時間從現在開始
  • 第二-mmin參數指定(當前時間之前修改分鐘回)從現在開始分鐘
  • 它們都與-a參數聯合並且包含在前綴括號中

你也許可以用這些做。否則,我需要更多關於您的需求的說明。

+0

偉大的工作人,謝謝! –

0

在腳本的開始,您可以使用觸摸命令的任何現有文件或創建一個虛擬文件。

例如

腳本啓動

觸摸文件名1 - 將文件名1的時間戳更改爲當前時間

然後在腳本結束時,您可以使用下面的命令:

查找目錄名文件名1 -newer

它會給在該目錄下的文件名1的時間戳後修改或創建的所有文件