linux下如何将当前目录的文件名存到一个文本文件里
ls*.gz>1.txt出错bash:/bin/ls:Argumentlisttoolong...
ls *.gz > 1.txt
出错
bash: /bin/ls: Argument list too long 展开
出错
bash: /bin/ls: Argument list too long 展开
5个回答
展开全部
Linux命令行参数数目是有限的,执行ls *.gz时,当通配符展开后,ls命令的参数列表超长了,导致运行出错。
如果只是想得到当前目录下(不包括子目录)的相关文件时,可以这样:
ls -1 | grep ".gz$" > 1.txt
如果想得到当前目录下,包括子目录中的相关文件时,应该用find命令:
find . -type f -name "*.gz" > 1.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ls 本身不能处理*通配符,其参数是shell根据*.gz产生的,文件太多就不行了。可用 find -maxdepth 1 -name "*.gz"
(要加双引号确保*号能让find去处理)
(要加双引号确保*号能让find去处理)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Linux命令支持的参数数目是有限的,而你的文件应该比较多,导致当通配符展开后,ls命令的参数列表超长了。
这样应该可以:
ls | grep ".gz" > 1.txt
这样应该可以:
ls | grep ".gz" > 1.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ls *.gz |xargs>1.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询