File-Search
如何在 Ubuntu 上搜尋影片文件?
幾個月前我下載了一個影片。我不太記得保存它的名稱。是否有任何命令或任何方法可以只輸出影片文件,以便我可以在那裡搜尋我的影片?從手冊頁中,我找不到任何查找選項來完成這項工作。
我下載的影片文件可能有任何副檔名(如 webm 等),也有可能我當時將名稱更改為我現在不記得的“abcde”之類的名稱。所以搜尋不能基於文件名!
(僅提一個相似之處:在 perl 中,有一些命令可以檢查文件是文本文件還是二進製文件等。類似地,可能還有一種方法可以檢查文件是影片文件還是多媒體文件)
基本思想是使用文件實用程序來確定每個文件的類型,並對影片文件進行過濾。
find /some/directory -type f -exec file -N -i -- {} + | sed -n 's!: video/[^:]*$!!p'
這將遞歸地列印其MIME類型為影片類型的所有文件
/some/directory
及其子目錄的名稱。該
file
命令需要打開每個文件,這可能很慢。為了加快速度:
- 將命令限制在可能存在的目錄樹中,例如
/tmp
,/var/tmp
以及您的主目錄。- 將搜尋限制為大小在正確範圍內的文件,例如至少 10MB。
- 將搜尋限制為修改時間在正確範圍內的文件。請注意,下載文件可能已將其修改時間設置為下載時間或保留時間,具體取決於您用於下載的程序(以及使用哪些設置)。您還可以過濾 inode 更改時間 (ctime),即文件最後一次修改或以任何方式移動(創建、重命名等)的時間。
這是一個範例,它將修改時間限制在至少 60 天前,ctime 限制在不超過 100 天前。
find /tmp /var/tmp ~ -type f -size +10M \ -mtime +60 -ctime -100 \ -exec file -N -i -- {} + | sed -n 's!: video/[^:]*$!!p'