Find
如何找到一堆文件名(或正文)中帶有字元串的文件,然後將所有這些文件移動到特定文件夾?
說 - 如果我想將幾個獨立目錄中的每個 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
. 見拉什的回答。