c - ls 通过管道传输到命令行

标签 c bash ls

我一直在尝试将 ls 的结果通过管道传输到我正在编写的 C 程序的命令行中(在 Unix 中)。我希望能够有一个文件索引,所以我打算使用 argv。这就是我认为它应该工作的方式:

./foo &(ls ~/path)

它不起作用 — 将 ls 的输出作为参数传递给命令的正确方法是什么?

最佳答案

你的语法有一点...

./foo $(ls ~/path)

请注意,这会阻塞包含某些字符的文件。请改用数组来解决此问题。

pushd ~/path
files=(*)
popd
./foo "${files[@]}"

关于c - ls 通过管道传输到命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743216/

相关文章:

c - 在 C 中读取一个字符并对其执行操作

c - K&R 上的代码损坏?

bash - 更改 xargs 参数以在每个参数中包含一个标志的方法?

bash - 设置 nullglob 时关联数组未取消设置

python - 子进程调用 ls 时出错

c - Bash 返回简单 C 程序的权限被拒绝

c - 移出寄存器 >>1

linux - sudo bang bang 到底是什么?

unix - 按名称对 'ls' 输出进行排序

linux - 如何显示 bash 中最近添加的 n 个目录的大小