我有一個服務「A」,它生成一些包含它在請求中接收的數據的壓縮文件。並行地有另一個服務「B」使用這些壓縮文件。列出具有相應「就緒」文件的文件
訣竅是「B」不應該消耗任何文件,除非它們完全寫入。該服務通過查找由服務「A」創建的「.ready」文件來推導該信息,其名稱與所提及的擴展名一起生成的文件完全相同;一旦壓縮完成。服務「B」使用Apache Camel來執行此過濾。
現在,我正在編寫一個需要相同壓縮文件的shell腳本,這需要在shell中實現相同的過濾。我需要編寫這個腳本的幫助。我知道找到命令,但一個天真的shell用戶,所以知識非常有限。
例子:
壓縮文件:sumit_20171118_1.gz
相應的準備 文件:sumit_20171118_1.gz.ready
另一個壓縮文件:sumit_20171118_2.gz
沒有現成的文件這個是存在的。
在上面列出的文件中,只有第一個應該被選中,因爲它有一個相應的準備文件。
你爲什麼不只是遍歷所有'* .ready'文件,然後切斷'.ready'後綴? – melpomene
是的,當然是一種選擇。我只是想知道是否存在這樣做的一些命令/內置功能。或者一般來說,如果有一個標準的方法來處理這種情況。 –
如果**服務B **正在尋找壓縮文件,它通常的工作方式是**服務A **用類似'.inprogress'的擴展名寫入文件,當文件完全寫入時**服務A **將其名稱更改爲以'.gz'結尾 - 從而以原子方式將完整文件釋放到**服務B **。 –