Php
如何根據該文件夾中是否存在特定文件類型來同步整個文件夾
我有一個伺服器設置接收電影到一個文件夾。然後我使用 DLNA 提供這些電影。但是在他們結束的初始文件夾中,所有類型的文件都結束了。圖片、音樂、文件等。我想我可以通過在該文件夾中執行以下腳本來解決這個問題
rsync -rvt –include=’/’ –include=’.avi’ –include=’.mkv’ –exclude=’’ 。../電影/
這可以工作並掃描給定的文件夾,並將所有找到的給定擴展類型的電影移動到該
Movies
文件夾中。但我想知道是否有辦法告訴 rsync 到
if a folder if found that includes a movie of the given extension types, sync the entire folder. Including other files such as .srt
. 這是為了讓我更容易將字幕與電影一起移動。我有一個通過 php 編寫的腳本找到的解決方案(是的,我實際上在 linux 中使用 php 編寫了大部分腳本……只是很久以前堅持的一個習慣)。但是,如果 rsync 可以從一開始就處理它,那就太好了。
另外,我注意到這行 rsync 實際上複製了給定文件夾中的所有根文件夾。如果文件夾中沒有電影,它將創建一個空文件夾。我如何防止 rsync 這樣做……並省去刪除所有
Movies
空文件夾的麻煩。
我非常有信心您需要使用某種包裹在 rsync 周圍的外部腳本來實現這一點。因此,您的問題的最終答案是簡潔的“不”。
按照上面的路徑範例,源文件位於“。”中 並且您希望將它們複製到“../Movies”:
if [ `find . -name \*.avi | wc -l` -gt 1 ]; then rsync ./ ../Movies/; fi