File-Search

如何在 Ubuntu 上搜尋影片文件?

  • December 25, 2013

幾個月前我下載了一個影片。我不太記得保存它的名稱。是否有任何命令或任何方法可以只輸出影片文件,以便我可以在那裡搜尋我的影片?從手冊頁中,我找不到任何查找選項來完成這項工作。

我下載的影片文件可能有任何副檔名(如 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'

引用自:https://unix.stackexchange.com/questions/106436