linux – 为什么`ls`每行列出多个文件,但`ls pipe / redirect`列出每行只有1个文件?
发布时间:2020-12-30 11:31:42 所属栏目:Linux 来源:互联网
导读:只是好奇,这是ls的正常预期行为: user@host:~$lsCodes Documents Music Pictures TemplatesDesktop Downloads Papers Public Videos 但是当我使用带管道/重定向的ls时,它的行为类似于ls -1: user@host:~$ls | catCodesDesktopDocumen
只是好奇,这是ls的正常预期行为: user@host:~$ls Codes Documents Music Pictures Templates Desktop Downloads Papers Public Videos 但是当我使用带管道/重定向的ls时,它的行为类似于ls -1: user@host:~$ls | cat Codes Desktop Documents Downloads Music Papers Pictures Public Templates Videos 为什么? (以及如何编写这样的程序,在这样的stdout和管道之间提供差异输出?) 附:我还设置别名l =’ls -F’,这次管道/重定向不再是ls -1样式: user@host:~$l | cat Codes/ Documents/ Music/ Pictures/ Templates/ Desktop/ Downloads/ Papers/ Public/ Videos/ 不使用别名,它以ls -1样式执行命令,但是: $ls -F | cat Codes/ Desktop/ Documents/ Downloads/ Music/ Papers/ Pictures/ Public/ Templates/ Videos/ 解决方法你可以从 source检查这一行:if (format == long_format) format = (isatty (STDOUT_FILENO) ? many_per_line : one_per_line); 它使用isatty函数来检查stdout是否指向tty,如果是,则打印many_per_line,如果不是则打印one_per_line. (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用标准的linux工具链查找/替换htmlentities?
- linux – 什么是脏私有内存?
- linux – tee命令无法正常工作(带有read和echo)
- linux – vim – 通过执行命令在shell中维护会话
- linux – 如何跟踪EC2实例或弹性IP上的公共带宽使用情况?
- linux – xprop设置atom属性的多个字段
- linux – Kate文本编辑器无法处理超过1024的行?
- 锁定 – 在Linux内核抢占spin_lock和mutex_lock
- /usr/local/bin/python3:bad interpreter:ubuntu 14.04没
- linuxmint – Linux Mint 17.1 Cinnamon 2.4鼠标光标在屏幕