Find

如何找到一堆文件名(或正文)中帶有字元串的文件,然後將所有這些文件移動到特定文件夾?

  • February 17, 2016

說 - 如果我想將幾個獨立目錄中的每個 HTML 文件移動到一個名為“天堂遊戲執行緒”?

要移動名稱中包含單詞的文件:

find /path/to/dir1 /path/to/dir2 /and/so/on -type f -iname "*heavengames*" \
-exec mv -t /path/to/heavengames-threads {} \+

要移動正文中包含 word 的文件:

find /path/to/dir1 /path/to/dir2 /and/so/on -type f -exec grep -q heavengames {} \; \
-exec mv -t /path/to/heavengames-threads {} \+

附言。要檢查一切是否正確,請在第一次執行echo之前添加。mv

在zsh或bash≥4時,根據文件名:

mkdir heavengames-threads
mv **/*heavengames*.html heavengames-threads/

為了獲得更大的靈活性(例如,要重新創建目錄層次結構,請查找(此站點上zmv有很多範例)。

用於grep搜尋文件內容。使用最新版本的 GNU 實用程序(即在非嵌入式 Linux 或 Cygwin 上):

grep -RZ heavengames . | xargs -0 mv -t heavengames-threads/

如需更多可移植命令,請使用find. 見拉什的回答

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