哪个更有效地查找整个文件系统中的哪些文件包含字符串:递归 grep 或在 exec 语句中使用 grep 查找?我认为 find 会更有效,因为如果您知道文件扩展名或与文件名匹配的正则表达式,您至少可以进行一些过滤,但是当您只知道-type f哪个更好时?GNU grep 2.6.3;查找(GNU findutils)4.4.2
例子:
grep -r -i 'the brown dog' /
find / -type f -exec grep -i 'the brown dog' {} \;
Red Hat 5/6 当我挂载时它说类型 nfs,我想知道如果它没有在挂载选项或 fstab 中列出,我想知道如何确定版本。请不要说用版本选项重新挂载它,我想知道如何确定当前挂载的NFS版本。我猜它会根据 NFS 服务器/客户端设置默认,但我如何确定它当前是什么?我很确定它是 NFS v3,因为似乎不支持 nfs4_setfacl。
我似乎无法让它发挥作用。GNU sed 文档说要转义管道,但这不起作用,也不能使用没有转义的直管。添加括号没有区别。
$ echo 'cat
dog
pear
banana
cat
dog' | sed 's/cat|dog/Bear/g'
cat
dog
pear
banana
cat
dog
$ echo 'cat
dog
pear
banana
cat
dog' | sed 's/cat\|dog/Bear/g'
cat
dog
pear
banana
cat
dog
Run Code Online (Sandbox Code Playgroud) 我对 fork 和 clone 有一些困惑。我已经看到:
fork 用于进程,clone 用于线程
fork 只是调用clone,clone 用于所有进程和线程
这两个都准确吗?这两个系统调用与 2.6 Linux 内核有什么区别?
那是字面意思,{fd}不是占位符。我有一个执行此操作的脚本,并且不引用任何内容,也不引用其他任何地方的 {fd}。这是有效的 bash 吗?
exec {fd}</dev/watchdog
如果我这样做:touch file; mv file /dev/null作为根,/dev/null消失。 ls -lad /dev/null结果没有这样的文件或目录。这会破坏依赖于/dev/nullSSH 的应用程序,并且可以通过执行mknod /dev/null c 1 3; chmod 666 /dev/null. 为什么将常规文件移动到这个特殊文件会导致/dev/null?
澄清一下,这是出于测试目的,我了解该mv命令的工作原理。我很好奇的是为什么ls -la /dev/null在用常规文件替换它之前显示预期的输出,但之后它显示/dev/null不存在,即使据称是通过原始mv命令创建的文件并且文件命令显示 ASCII 文本。我认为这必须是ls命令行为与devfs非特殊文件替换字符/特殊文件时的组合。这是在 Mac OS X 上,行为在其他操作系统上可能会有所不同。
如果在包含一个字母的文件上运行 ls -l,它的大小将显示为 2B。如果您的文件系统是 4k 块,我认为它会将文件四舍五入到块大小?是不是因为 ls -l 实际上是从 inode 读取字节数?在 Linux 2.6 Kernel GNU utils 中,您在什么情况下会被四舍五入以阻止答案与实际字节数答案?
我想在使用 .php 的日志中找到所有没有跟在 .php 后面的“索引”实例less。 /index(?!\.php)不起作用。这可能吗?less 和 vim 的正则表达式是什么(它们有区别吗?)。这些应用程序各自的正则表达式库无法做到这一点吗?
我想知道是否有办法将手册页打开到特定的搜索字符串,而不是执行man chmod然后/a+x跳转到提到的 chmod 手册页中的第一部分a+x,类似于您vi +string filename.txt在 vi(m )。
我知道当页面缓存页面被修改时,它被标记为脏并需要写回,但在以下情况下会发生什么:
场景: 文件/apps/EXE是一个可执行文件,被完全分页到页面缓存中(它的所有页面都在缓存/内存中)并被进程P执行
持续发布然后用全新的可执行文件替换 /apps/EXE。
假设 1: 我假设进程 P(以及具有引用旧可执行文件的文件描述符的任何其他人)将继续使用旧的内存 /apps/EXE 没有问题,并且任何尝试执行该路径的新进程都将获得新的可执行文件。
假设 2: 我假设如果不是文件的所有页面都映射到内存中,那么事情会很好,直到出现页面错误需要已替换文件中的页面,并且可能会发生段错误?
问题 1: 如果您使用 vmtouch 之类的东西 mlock 文件的所有页面,这是否会改变场景?
问题 2: 如果 /apps/EXE 位于远程 NFS 上,那会有什么不同吗?(我认为不是)
请更正或验证我的 2 个假设并回答我的 2 个问题。
让我们假设这是一个带有某种 3.10.0-957.el7 内核的 CentOS 7.6 机器
更新:进一步思考,我想知道这个场景是否与任何其他脏页场景没有什么不同..
我想写入新二进制文件的进程将读取并获取所有缓存页面,因为它都被分页了,然后所有这些页面都将被标记为脏。如果它们被锁定,在引用计数变为零后,它们将只是占据核心内存的无用页面。
我怀疑当当前正在执行的程序结束时,其他任何东西都会使用新的二进制文件。假设这一切都是正确的,我想只有当只有部分文件被分页时才有趣。