输出which通过管道传输到标准输入ls.但是,ls标准输入不需要任何操作.你想要它(我推测)作为参数传递.有几种方法可以做到这一点:
which cp | xargs ls -l
Run Code Online (Sandbox Code Playgroud)
要么
ls -l `which cp`
Run Code Online (Sandbox Code Playgroud)
要么
ls -l $(which cp)
Run Code Online (Sandbox Code Playgroud)
在第一个示例中,该xargs命令采用上一个上一个命令的标准输出,并使每一行成为紧跟其名称的命令的参数xargs.所以,例如
find / | xargs ls -l
Run Code Online (Sandbox Code Playgroud)
将ls -l在文件系统中的每个文件上执行一个(这有一些问题与特殊命名的文件,但这超出了这个答案的范围).
其余两个大致相当,并使用shell执行此操作,将输出扩展which到命令行中cp.