我运行此命令来查找我网站根目录中所有文件中出现的"apple"并将其替换为"orange":

find ./ -exec sed -i 's/apple/orange/g' {} \;

但它不经过子目录.

这个命令怎么了?

以下是find ./的一些输出行:

./index.php
./header.php
./fpd
./fpd/font
./fpd/font/desktop.ini
./fpd/font/courier.php
./fpd/font/symbol.php

推荐答案

您的find应该是这样的,以避免将目录名发送到sed:

find ./ -type f -exec sed -i -e 's/apple/orange/g' {} \;

Linux相关问答推荐

获取Perl文件::Tail开始在最后流传输文件

Linux-如何区分目录中名称相同但扩展名不同的所有文件

2023 年如何在现代 Linux 上安装 Firebird SQL 版本 3 或 4?

Linux 系统调用文档

Linux上Kvaser数据库编辑器的等效工具

如何从linux调度程序中屏蔽一个cpu(防止它调度线程到那个cpu上)?

在 Bash 中从最后到第一个输出文件行

隐藏文件 .env 未使用 Docker COPY 复制

如何在 linux 'screen' 中搜索任何单词

模拟器在内核映像文件中找不到Linux 版本字符串

何时判断 EINTR 并重复函数调用?

将 bash 脚本添加到路径

如何在python中找到文件或目录的所有者

如何分析内存使用情况?

to_string不是std的成员?

C++:使用 longjmp 和 setjmp 安全吗?

当父进程被杀死时,使用 fork() 创建的子进程是否会自动被杀死?

Hierarchical分层 ldd(1)

计算每个进程打开的文件

CentOS:在 PHP 安装中启用 GD 支持