将文件内容管道传输到ls

蒂莫西·森森

我有一个名为“ input.txt”的文件包含一行:

/bin

我想使文件的内容成为命令的输入 ls

我试着做

cat input.txt | ls

但不会输出/ bin目录中的文件列表

我也试过

ls < input.txt

无济于事。

马克·里德

您正在寻找xargstranspose arguments)命令。

xargs ls < input.txt

您说您想/bin成为的“输入” ls,但这是不正确的。ls输入不做任何事情。相反,您希望/bin作为命令行参数传递ls,就像您已经键入一样ls /bin

输入和参数完全不同。将文本作为命令输入到命令与将文本作为参数输入是不同的。的差异可以通过一个事实,即许多命令,如被模糊cat了他们实际操作上就是:但即使在那里,我们发现一个重要的区别- ,将在任何他们的输入或它们的参数(或两者)操作的文件内容,其名称作为参数传递。

xargs命令经过专门设计,可在这两种情况之间进行转换:将其输入解释为以空格分隔的命令行参数列表,以传递给其他命令。在这种情况下,另一个命令将xargs作为命令行参数提供ls

由于shell via提供的输入重定向此处提供<的参数来自文件。xargslsinput.txt

还有其他方法可以完成同一件事。例如,只要其中input.txt没有太多文件以致于它们不能放在单个命令行中,您可以执行以下操作:

ls $(< input.txt)

上面的命令和xargs版本都将input.txt文件中的任何空格都视为分隔的文件名,因此,如果文件名包含空格字符,则必须做更多的工作才能正确解释文件。另外,请注意,如果任何文件名包含通配符/“ glob”字符(例如?*[...)],则$(<...)版本会将其扩展为通配符模式,而xargs不会。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将文件内容通过管道传输到 AWK

将内容从Github管道传输到crontab

使用SMB将文件内容通过管道传输到本地计算机上的本地命令

如何将大tar.gz文件的内容通过管道传输到STDOUT?

如何通过管道将任何内容传输到音频输出?

如何将文件的输出通过管道传输到命令?

将stdout和stderr管道传输到文件的子例程

通过管道传输到jq后将输出写入文件

将交互式bash会话管道传输到文件

我无法将终端输出通过管道传输到文件

直接将文件管道传输到AWS SSM参数存储?

如何通过管道将多个文件传输到ffmpeg?

用管道将最新的日志文件传输到awk

将内容从源文件传输到目标文件的 Python 程序

R for() 循环:将“ls”标准输出管道传输到 read.csv() 并创建多个对象

如何管道传输到文件(NodeJS)

将pdffonts管道传输到grep

将数据管道传输到plutil

将mysqldump管道传输到mysql

将PID管道传输到jstack

将多个文件中的数据通过管道传输到其原始文件中

将“ ls -G1”的输出通过管道传输到“ sed”,同时在macOS中保留输出颜色

尝试将内容从 ol 传输到 ul

将 HTML 内容传输到 Excel

如何通过管道将 Vertx 请求直接流式传输到文件

将gnu的输出并行传输到单个文件或管道是否安全?

启动 MySQL 服务器 > 将输出通过管道传输到文件

将文件中的输入管道传输到 Windows cmd 中的命令

将搜索字词(而非文件名)管道传输到grep