Bash:列出具有绝对路径的文件,每行一个,没有其他信息

Bash:列出具有绝对路径的文件,每行一个,没有其他信息

我正在寻找一个列出当前目录中所有文件的命令。

要求:

  1. 绝对路径
  2. 每行一个文件
  3. 没有其他信息(如大小、权限......)
  4. 不显示文件夹

我目前得到的是:

ls -d1 $PWD/*

这使:

[User@User-arch Pictures]$ ls -d1 $PWD/*
/home/User/Pictures/folder1
/home/User/Pictures/folder2
/home/User/Pictures/file1.png
/home/User/Pictures/file2.png
/home/User/Pictures/file3.png
/home/User/Pictures/file4.png

readlink -f $PWD/*,输出相同。

除了第 4 点要求外,它们都满足。我该如何调整它以使其不显示文件夹?或者有更简单的命令吗?

答案1

find $PWD -maxdepth 1 -type f

列出当前工作目录中的文件。-type f告诉find列表仅常规文件(没有文件夹),-maxdepth 1防止子文件夹中的内容出现在输出中。

答案2

您可以告诉ls在目录名称后面包含尾随的正斜杠,然后将其通过管道传输到grep

ls -pd1 $PWD/* | grep -v /$

编辑:看到了我原始答案中的缺陷。

相关内容