Unix下ls -1重定向到新文件后结果包含重定向的新文件,怎么能去掉这个特性

richardsa 2009-01-08 10:34:18
比如:ls -1 >tmp

tmp里有tmp本身
...全文
157 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
richardsa 2009-01-10
  • 打赏
  • 举报
回复
多谢各位,我发现在公司的机器上就没这个问题,家里的才有,周一再看看
快乐田伯光 2009-01-09
  • 打赏
  • 举报
回复
也可以重定向到另一个目录的文件嘛,这样不就没有了吗?
快乐田伯光 2009-01-09
  • 打赏
  • 举报
回复
哦,看走题了,呵呵
brookmill 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 guosha 的回复:]
你的是什么shell?
bash的话
>重定向不会包括tmp原来的内容的。
>>重定向才会包括tmp原来的内容
[/Quote]
楼主的意思是:
假定目录里只有一个文件a
执行了 ls -1 >tmp
之后,tmp文件的内容是 a tmp
楼主想要tmp文件的内容只有a

3楼的办法很不错
快乐田伯光 2009-01-09
  • 打赏
  • 举报
回复
你的是什么shell?
bash的话
>重定向不会包括tmp原来的内容的。
>>重定向才会包括tmp原来的内容

[Quote=引用楼主 richardsa 的帖子:]
比如:ls -1 >tmp

tmp里有tmp本身
[/Quote]
cloudflashes 2009-01-09
  • 打赏
  • 举报
回复
ls -l |grep -V tmp >tmp
无知者无谓 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guosha 的回复:]
也可以重定向到另一个目录的文件嘛,这样不就没有了吗?
[/Quote]
要么你可以使用sed命令过来掉输出文件
darknbright 2009-01-08
  • 打赏
  • 举报
回复
分开两步来做:
AA=`ls`; echo $AA > tmp
brookmill 2009-01-08
  • 打赏
  • 举报
回复
刚试了这个,也不行: ls | cat > tmp
brookmill 2009-01-08
  • 打赏
  • 举报
回复
想不出什么好办法。shell在执行ls之前就创建了tmp文件
可以考虑写个脚本,先把tmp建立到另一个目录(比如..),然后mv回来

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧