我正在寻找一个列出当前目录中所有文件的命令。
要求:
- 绝对路径
- 每行一个文件
- 没有其他信息(如大小、权限......)
- 不显示文件夹
我目前得到的是:
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 /$
编辑:看到了我原始答案中的缺陷。