如果在30分鐘內沒有創建目錄中的任何文件,我需要創建一個bash腳本來運行另一個腳本命令。linux bash找不到執行
我不確定我需要的代碼,但它需要找到並執行,如果不匹配。 -
find/folder/to/watch/* if-not 30 mins -exec fixscript.sh什麼?
當腳本運行我想它來檢查文件的文件夾中,如果一個文件尚未最後30分鐘內創建,然後再執行fixscript.sh
在此先感謝
如果在30分鐘內沒有創建目錄中的任何文件,我需要創建一個bash腳本來運行另一個腳本命令。linux bash找不到執行
我不確定我需要的代碼,但它需要找到並執行,如果不匹配。 -
find/folder/to/watch/* if-not 30 mins -exec fixscript.sh什麼?
當腳本運行我想它來檢查文件的文件夾中,如果一個文件尚未最後30分鐘內創建,然後再執行fixscript.sh
在此先感謝
我不認爲這可以結合到一個單一的發現聲明。以下是可行的,但需要注意的是,如果文件被修改,它會被檢測爲「比30分鐘更新」。
if [ `find /folder/to/watch -mmin -30 | wc -l` -eq 0 ]; then
/path/to/fixscript.sh
fi
Linux/Unix沒有獨立的文件創建屬性。但是,某些文件系統可能會擁有它,但無法從沒有c代碼的shell進行訪問並調用stat()。這使用「文件修改」時間戳,不僅在文件創建時進行更改,而且還進行文件編輯。
哈努哈利
在Linux中你沒有創造時間的元數據,但只有最後修改時間,上次更改文件狀態和上次訪問時間。
你可以這樣做:
if test ! [`find "your_file" -mmin +30`]
then
`path/to/your/script.sh`
fi
的-mmin
選項是給你的最後修改時間。
'find/folder/to/watch -mmin -30 | grep -q'。*'|| fixscript.sh'會更有效率。沒有必要看*多少*輸出'find'產生;我們只需要確定它是否產生任何東西。 – chepner
'if [[-z「$(find ... -print -quit)」]];然後fixscript.sh; fi'也可以;將'find'的輸出限制爲一個字符串,可以捕獲它並檢查其輸出是否爲空。 – chepner