如何在 Linux 中为每个输出行列出一个文件名?

新手上路,请多包涵

我正在使用 ls -a 命令来获取目录中的文件名,但输出在一行中。

像这样:

 .  ..  .bash_history  .ssh  updater_error_log.txt

我需要一个内置的替代方法来获取文件名,每个文件名都在一个新行上,如下所示:

 .
..
.bash_history
.ssh
updater_error_log.txt

原文由 fixxxer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 585
2 个回答

使用 -1 选项(注意这是“一个”数字,而不是小写字母“L”),如下所示:

 ls -1a


不过,首先,请确保您的 ls 支持 -1 。 GNU coreutils(安装在标准 Linux 系统上)和 Solaris 可以;但如果有疑问,请使用 man lsls --help 或查看文档。例如:

 $ man ls
...
       -1     list one file per line.  Avoid '\n' with -q or -b

原文由 Bert F 发布,翻译遵循 CC BY-SA 4.0 许可协议

是的,您可以轻松地使 ls 每行输出一个文件名:

 ls -a | cat

说明:命令 ls 检测输出是到终端还是到文件或管道并进行相应调整。

因此,如果您将 ls -a 通过管道传输到 python,它应该可以在没有任何特殊措施的情况下工作。

原文由 Peter G. 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题