批量修改目录下所有文件
批量修改目录下所有文件中包含 192.168.128.48 替换成 10.54.0.30
1 | find /path/to/directory -type f -exec sed -i 's/192.168.128.48/10.54.0.30/g' {} + |
批量修改目录下所有文件夹以及文件
1 | find /path/to/directory \( -type f -o -type d \) -exec sed -i 's/192.168.128.48/10.54.0.30/g' {} + |
find
命令中的 -type f
、-exec
和 {}
是用于搜索和处理文件的参数和操作符。
-type f
是find
命令的一个选项,用于指定搜索文件类型。在这种情况下,-type f
表示只搜索普通文件(不包括目录、符号链接等)。-exec
是一个find
命令中的一个选项,用于在找到的文件上执行一个命令。它后面应该跟随一个要执行的命令,以及一个分号;
。在示例中,-exec
用于执行sed
命令。{}
是一个特殊标记,它在-exec
后面用来表示find
命令找到的每个文件的位置。{}
将被替换为实际的文件名。当你使用-exec
时,你可以在其中使用{}
来代表每个找到的文件。+
是一个特殊的find
语法,用于告诉find
命令在找到的文件上执行命令,而不是为每个文件分别执行一次命令。这可以提高效率,特别是在处理大量文件时。