LinuxSir.cn,穿越时空的Linuxsir!

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

如何删除 这个命令列出的文件?# ls -rtl|gawk '/Dec 27/ {print $9}' | rm -rf

[复制链接]
发表于 2004-12-27 17:54:49 | 显示全部楼层 |阅读模式
我打算删除gawk输出后的所有文件,我想知道如何删除他们呢?

# ls -rtl|gawk '/Dec 27/  {print $9}' | rm -rf
发表于 2004-12-27 22:09:01 | 显示全部楼层
for i in `ls -rtl|gawk '/Dec 27/ {print $9}'`
do
rm -rf $i
done


----------------------------
注意上面的命令是有bug的,比如,若是一个符号链接文件,那就会出错
----------------------------

建议兄弟查看一下精华帖,这些问题很容易就能找到答案,印象更深,学习更有效率
发表于 2004-12-27 22:31:08 | 显示全部楼层
Post by sgzlit
我打算删除gawk输出后的所有文件,我想知道如何删除他们呢?

# ls -rtl|gawk '/Dec 27/  {print $9}' | rm -rf


试试用find, 如'find -(m/a/c)time the_time -exec rm -fr {} \;' 时间你自己可以根据具体情况定。
发表于 2004-12-27 23:05:49 | 显示全部楼层
Post by sgzlit
我打算删除gawk输出后的所有文件,我想知道如何删除他们呢?

# ls -rtl|gawk '/Dec 27/  {print $9}' | rm -rf

  1. rm -rf $(ls -rtl|gawk '/Dec 27/ {print $9}')
复制代码
发表于 2004-12-28 00:42:13 | 显示全部楼层
rm `ls -l | awk '/Dec 27/ { print $8 }'`
 楼主| 发表于 2004-12-28 10:30:12 | 显示全部楼层
Post by rorot
rm `ls -l | awk '/Dec 27/ { print $8 }'`

rm -rf $(ls -rtl|gawk '/Dec 27/ {print $9}')
这个方法比较简单易行
但我还是不明白 ls -rtl|gawk '/Dec 27/ {print $9}' | rm -rf 为什么不可以!?

多谢各位大侠指教
发表于 2004-12-28 12:35:29 | 显示全部楼层
兄弟理解一下
管道:将一个命令的输出用作一个命令的输入
命令参数:将变量扩展成一个命令的参数
 楼主| 发表于 2004-12-28 13:13:01 | 显示全部楼层
Post by kiron
兄弟理解一下
管道:将一个命令的输出用作一个命令的输入
命令参数:将变量扩展成一个命令的参数

  ls -rtl|gawk '/Dec 27/ {print $9}' | rm -rf
那就是说如果用管道,前边gawk的输出如果只有一个,作为rm的输入,则是可以的?
不过我试了一下好像还不行,是不是需要加一个什么参数,例如stdin之类的?
简单点说就是如何让ls -rtl|gawk '/Dec 27/ {print $9}' | rm -rf的形式实现 rm -rf $(ls -rtl|gawk '/Dec 27/ {print $9}')的功能?
发表于 2004-12-28 13:22:07 | 显示全部楼层
无法用管道的形式直接给命令rm提供参数
rm命令只需要一个参数(即文件名)而不需要输入文件
 楼主| 发表于 2004-12-28 13:49:27 | 显示全部楼层
Post by kiron
无法用管道的形式直接给命令rm提供参数
rm命令只需要一个参数(即文件名)而不需要输入文件

ls -rtl|gawk '/Dec 27/ {print $9}' | xargs rm -rf
我用了xargs试了一下,也可以了:-)

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

本版积分规则

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