如何找到一堆文件名(或正文)中带有字符串的文件,然后将所有这些文件移动到特定文件夹?

说 - 如果我打算将文件名中带有“heavengames”字样的多个独立目录中的每个 HTML 文档(并且作为第二个问题,每个正文中带有“heavengames”字样的 HTML 文件)重新定位到一个新目录,会发生什么情况网站名为“heavengames - 线程”?

5
2022-06-07 14:40:04
资源 分享
答案: 2

要移动名称中包含单词的数据:

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 {} \+

附言。 要检查一切是否合适,请在第一次运行时在 mv 之前添加 echo

4
2022-06-07 15:11:49
资源

在 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。 请参见 拉什的回答

2
2022-06-07 14:47:41
资源