我知道该grep
命令并且正在了解 的功能xargs
,因此我通读了此页面,其中提供了一些有关如何使用该xargs
命令的示例。
我对最后一个示例感到困惑,示例 10。它说“xargs 命令执行 grep 命令以查找包含字符串 'stdlib.h' 的所有文件(在 find 命令提供的文件中)”
$ find . -name '*.c' | xargs grep 'stdlib.h'
./tgsthreads.c:#include
./valgrind.c:#include
./direntry.c:#include
./xvirus.c:#include
./temp.c:#include
...
...
...
Run Code Online (Sandbox Code Playgroud)
但是,简单地使用有什么区别
$ find . -name '*.c' | grep 'stdlib.h'
Run Code Online (Sandbox Code Playgroud)
?
显然,我仍在为 xargs 正在做什么而苦苦挣扎,因此感谢您提供任何帮助!
我在 bash 脚本中看到了以下语法:
>$(command) &
Run Code Online (Sandbox Code Playgroud)
我知道&
末尾的 & 符号使命令在后台运行,但我从未见过它与美元符号和命令周围的括号结合使用。
它有什么作用?
是的,我已经尝试在其他地方查找它,但是应该说明输入重定向的示例,例如这里,总是有一个令人困惑的警告。在刚刚发布的网站示例中,他们说:
# echo 'hello world' >output
# cat <output
Run Code Online (Sandbox Code Playgroud)
第一行将“hello world”写入文件“output”,第二行将其读回并将其写入标准输出(通常是终端)。
但是,cat output
会做完全相同的事情,<
这里没有。那么区别是什么呢??
我正在寻找文件“file.odt”,所以我使用了 find 命令:
sudo find / -name "file.odt"
Run Code Online (Sandbox Code Playgroud)
虽然我的计算机提供了指向同一文件的多个副本的多个路径,但它还提供了一个如下所示的路径:
/home/user/.cache/.fr-ShFl2I/file.odt
不用说, “user”中没有名为“.cache”的文件夹。这是什么意思?
我的显示器通过 DVI 连接到计算机 A,通过 VGA 连接到计算机 B。如果我先启动 PC A,最后启动 PC B,显示器会显示 PC A 的信号。
是否有一种简单的方法可以通过命令行在两个信号之间进行更改,以便显示器显示所需 PC 的信号,而我不必拔掉显示器的插头?