【发布时间】:2015-06-16 22:30:01
【问题描述】:
是否可以将文件的输出重定向到 ls.
示例:文件中有一个/,我想将其定向到 ls 以获取/ 目录的内容。当我尝试ls < file 这不起作用
【问题讨论】:
-
您接受的有趣答案 :-) 您真的尝试过运行
ls "$(cat your_file)"吗?你用的是什么外壳?
是否可以将文件的输出重定向到 ls.
示例:文件中有一个/,我想将其定向到 ls 以获取/ 目录的内容。当我尝试ls < file 这不起作用
【问题讨论】:
ls "$(cat your_file)" 吗?你用的是什么外壳?
您可以使用xargs 或命令替换来实现此目的。
关键是了解xargs command。
如果您在名为files_to_change 的文件中有文件列表,则您
可以使用以下一种衬垫打印它们:
cat files_to_change | xargs ls
另一种方法是使用command substitution。这有效 同上。
两个不同的单行,使用不同的语法:
ls `cat files_to_change`
ls $(cat files_to_change)
不管是文件还是目录,你都可以对它们运行任何命令。
如果file_to_change的内容是:
/usr/bin/
/bin/
cat files_to_change | xargs ls 和 ls $(cat files_to_change) 相当于运行:
$ ls /usr/bin/
$ ls /bin/
控制台上的输出应该是你想要的。
【讨论】:
xargs 真的没有在这里添加任何东西。您所需要的只是命令替换。
您需要使用xargs。这个非常有用的实用程序运行带有作为输入传入的参数的命令:
cat myfile | xargs ls
【讨论】:
ls 'cat your_file'
注意,' 是 altGr+7 字符(但在这里用于格式化!)
【讨论】: