linux下如何将当前目录的文件名存到一个文本文件里

ls*.gz>1.txt出错bash:/bin/ls:Argumentlisttoolong... ls *.gz > 1.txt
出错
bash: /bin/ls: Argument list too long
展开
 我来答
幻翼高达Zero
2019-06-25 · TA获得超过1.7万个赞
知道答主
回答量:499
采纳率:0%
帮助的人:8万
展开全部

需要准备的材料分别是:电脑、linux连接工具。

1、首先连接上linux主机,进入到需要处理的目录,例如“/”目录。

2、输入:ls -1 > 1.txt,按回车。

3、此时通过ls命令发现“1.txt”文件被生成的。

4、用vi命令打开“1.txt”文件,发现刚才目录中的文件名已经都被存在到这个文本文件中了。

kaixingui2012
推荐于2017-09-25 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6393万
展开全部

Linux命令行参数数目是有限的,执行ls *.gz时,当通配符展开后,ls命令的参数列表超长了,导致运行出错。

如果只是想得到当前目录下(不包括子目录)的相关文件时,可以这样:

ls -1 | grep ".gz$" > 1.txt

如果想得到当前目录下,包括子目录中的相关文件时,应该用find命令:

find . -type f -name "*.gz" > 1.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
damn21cn
推荐于2017-09-15 · TA获得超过2658个赞
知道小有建树答主
回答量:1800
采纳率:50%
帮助的人:678万
展开全部
ls 本身不能处理*通配符,其参数是shell根据*.gz产生的,文件太多就不行了。可用 find -maxdepth 1 -name "*.gz"
(要加双引号确保*号能让find去处理)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
brownhorse
2011-04-07 · TA获得超过220个赞
知道答主
回答量:160
采纳率:0%
帮助的人:156万
展开全部
Linux命令支持的参数数目是有限的,而你的文件应该比较多,导致当通配符展开后,ls命令的参数列表超长了。
这样应该可以:
ls | grep ".gz" > 1.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
faminxmu
2011-04-07
知道答主
回答量:9
采纳率:0%
帮助的人:1.4万
展开全部
ls *.gz |xargs>1.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式