Bash:如何只列出文件?
如何列出一个文件夹的所有文件,而不是其文件夹或子文件。 换句话说:我怎样才能列出文件?
使用find
:
find . -maxdepth 1 -type f
使用-maxdepth 1
选项可确保只查看当前目录(或者,如果用某个pathreplace.
目录)。 如果你想要一个完整的recursion列表中的所有文件和子目录,只要删除该选项。
你也可以将ls
与grep
或egrep
一起使用,并把它作为别名放在你的configuration文件中:
ls -l | egrep -v '^d' ls -l | grep -v '^d'
-
carlpett的基于
find
的答案原则上是行得通的,但是与使用ls
不太一样:你会得到一个前缀为./
的文件名的潜在未sorting列表,而且你失去了应用ls
的许多选项的能力。
也find
总是find隐藏的项目,而我的行为取决于存在或不存在的-a
或-A
选项。-
亚历克斯·霍尔 ( Alex Hall)在这个问题上提出的一个改进就是把shell和glob结合起来:
find * -maxdepth 0 -type f # find -L * ... includes symlinks to files
- 然而,虽然这解决了前缀问题,并给你按字母顺序sorting的输出,你仍然没有(内联)控制包含隐藏的项目,也没有访问
ls
的许多其他sorting/输出格式选项。
- 然而,虽然这解决了前缀问题,并给你按字母顺序sorting的输出,你仍然没有(内联)控制包含隐藏的项目,也没有访问
-
-
Hans Roggeman的
ls
+grep
答案是实用的,但是使用long(-l
)输出格式locking你。
为了解决这些限制,我写了(fs) ls )
- 提供
ls
的输出灵活性的实用程序,同时还提供types过滤function , - 简单地通过在
ls
参数列表(例如运行fls --help
或fls --man
以了解更多信息)之前放置types过滤字符 (如f
的文件,d
的目录和l
的符号链接 )。
例子:
fls f # list all files in current dir. fls d -tA ~ # list dirs. in home dir., including hidden ones, most recent first fls f^l /usr/local/bin/c* # List matches that are files, but not (^) symlinks (l)
安装
支持的平台
- 从npmregistry安装时: Linux和OSX
- 当手动安装时:任何类似Unix的平台与Bash
从npmregistry
注意:即使您不使用Node.js,其包pipe理器npm
可以跨平台工作,并且易于安装。 尝试
curl -L https://git.io/n-install | bash
使用Node.js或io.js安装,如下所示:
[sudo] npm install fls -g
注意 :
- 无论你需要
sudo
取决于你如何安装Node.js / io.js以及你是否稍后改变了权限 , 如果您收到EACCES
错误,请使用sudo
重试。 -
-g
确保全局安装 ,并且需要将fls
放入系统的$PATH
。
手动安装
- 下载这个
bash
脚本为fls
。 - 使用
chmod +x fls
来执行它。 - 将它移动或符号链接到
$PATH
的文件夹,例如/usr/local/bin
(OSX)或/usr/bin
(Linux)。
用正则expression式:
ls -al | egrep -v“^ d。*”
“find'-maxdepth'”不适用于我旧版本的bash,因此我使用:
对于$(ls)中的f; 如果[-f $ f]; 然后echo $ f; fi; DONE
我使用这个语法:
find -maxdepth 1 -type f | ls
所以我只能列出当前目录中的文件,并将它们给予ls以获得很好的显示效果。
{ find . -maxdepth 1 -type f | xargs ls -1t | less; }
添加xargs
使其工作,并使用-1
而不是-l
只显示文件名,没有额外的ls
信息
ls -p | grep -v /
ls -p可让您显示/显示文件夹名称后面的文件夹名称,您可以将其作为要删除的标记。
只要加上carlpett的答案。 要获得对这些文件非常有用的视图,可以将输出传递给ls。
find . -maxdepth 1 -type f|ls -lt|less
以列表格式显示最近修改过的文件,当您下载了大量文件并且希望看到最近版本的非混乱版本时非常有用。