LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1864|回复: 17

rm,管道和硬链接的问题

[复制链接]
发表于 2008-2-2 10:22:40 | 显示全部楼层 |阅读模式
首先是rm和管道.

我的$HOME下面有很多~文件.想批处理掉.于是一开始我写的是
rm *~$结果是说没有找到'*~$'文件.以为需要匹配再删除,于是改为

ls -a | grep '~$' | rm结果还是错误.但是我改成
ls -a | grep '~$' | wc却正确..

不明白为什么
后来又尝试直接输入rm *~  .结果成功了.
这个一个是最先开始我rm *~$时候,为什么2个正则都没被解释?我并没有使用跳脱阿?
再就是为什么在通过管线的时候.wc可以,rm却不能?

--------------------------%<----------------------
再来说下硬链接

比如说我在win分区下面的A目录内对文件123(同分区内)建立了硬链接到B目录(ln /A/123 /B/123).

首先是,在win下面,B目录内的123是什么?快捷方式?还是什么都不是.根本打不开?还是被等同于复制了?

然后somebody在win 下面删除了A目录的123.用的是shift+del.请问.这次的删除是只删除了节点I的链接还是连节点I删除并释放了数据块?如果我再在linux下面查看B目录的123,还能找到文件不?

----------------------%<------------------------
谢谢~~
发表于 2008-2-2 12:08:01 | 显示全部楼层
关于第一个问题, 楼主请想一想, rm 支持从标准输入讨取文件名吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-2 16:02:28 | 显示全部楼层
谢谢1楼答复,从标准输入删除我还真没做过.刚刚自己测试了下.cat | rm 是不成功的.看来rm不能从标准输入.不过
rm *~$为什么2个正则都没有被解释呢?反而rm *~被解释了?是不是^和$不能应用在rm中?
回复 支持 反对

使用道具 举报

发表于 2008-2-2 17:51:14 | 显示全部楼层
rm貌似只能匹配*  .  [] [!] 这些吧。
回复 支持 反对

使用道具 举报

发表于 2008-2-2 23:20:55 | 显示全部楼层
对于目录,做硬链接是没有意义的。
硬链接是不占用硬盘空间的,因为只是增加了对象的应用激数。你增加硬链接后,可以df看一下,硬盘空间是不变的,你可以拿个大文件试试。cp出来的文件是有一个新文件id的,硬链出来的是同一个文件id。要注意硬链只能在同一分区下使用。
回复 支持 反对

使用道具 举报

发表于 2008-2-2 23:22:34 | 显示全部楼层
用管道rm我好像没试过,写个简单的shell可以解决吧
回复 支持 反对

使用道具 举报

发表于 2008-2-3 00:48:27 | 显示全部楼层
globbing is NOT RE, ok?
回复 支持 反对

使用道具 举报

发表于 2008-2-3 08:45:51 | 显示全部楼层
Post by casio1374633;1813640
rm *~$为什么2个正则都没有被解释呢?反而rm *~被解释了?是不是^和$不能应用在rm中?


请继续思考, 当楼主在 shell 中敲 rm * 并按回车时究竟是由谁来对 * 进行扩展? 是 rm 还是 sh? 其扩展的原则与 grep 中使用的正则表达式相同吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-3 11:40:26 | 显示全部楼层
首先回答5楼,我已经写了我是针对文件做硬链接.对目录的硬链接好像只有root可以.(关于这个现象,我自己做个试验好了.待会我把试验的现象写出来.有高手帮忙分析下原理好了,主要是关于是否删除了节点I和释放了数据块的问题)

回8楼,我个人的思考是rm中的扩展只是由rm来负责.因为grep种的正则是针对文件内的字符或者标准输入中进行匹配的.通过cat | grep可以进行测试(我貌似做过这个练习).
我个人的理解是grep中的正则表达式是由sh来扩展的.而rm中的是只由rm负责扩展.

这个只是我的个人思考,希望得到解答.谢谢~~

-------------------------%<-------------------
补充.刚刚去试验了下硬链接的事情.在win的NTFS分区下面创建了文件123.然后在同分区另一目录下面做了硬链接123_ln.重启进入win.在硬链接文件123_ln上用vim做了修改.然后再返回到文件123,发现123也被修改了.首先是硬链接和源文件确实指向同一节点,这个在win下面也是被认出的.还有就是删除123文件以后.123_ln文件依然可以被打开把并编辑.效果和linux下面的一样.奇怪windows为什么不做这个硬链接的功能而只有一个快捷方式?

还有就是发现在win下分区创建的文件和目录自动为root,组root.属性777..不明原因~~
回复 支持 反对

使用道具 举报

发表于 2008-2-3 12:09:21 | 显示全部楼层
关于谁来扩展, 如何扩展, 建议楼主去查查资料再下结论
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表