LinuxSir.cn,穿越时空的Linuxsir!

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

自动生成 lftp 全部收藏站点的 ls-R 的脚本

[复制链接]
发表于 2006-12-25 17:31:45 | 显示全部楼层 |阅读模式
学校的 FTP 关闭了,于是只好利用私人的 FTP,问题是收集的站点多了后,想查找某样东西就变得不方便了,于是写了这个小脚本,自动生成 lftp 中收藏的全部站点的 ls-R,也就是目录列表。这个功能实现起来很简单,不过还是挺有用的

  1. #!/bin/sh


  2. refresh()
  3. {
  4.         local list=`lftp -c bookmark list | sed 's/[ \t].*//g'`

  5.         local -i i=0 n=`echo "$list" | wc -l`

  6.         while [ $i -le $n ]
  7.         do
  8.                 i=`expr $i + 1`

  9.                 local url=`echo "$list" | awk "NR==$i{print}"`

  10.                 lftp -c "set net:max-retries 1 && open $url && ls -R" \
  11.                         | tee 'ls-R.'$url
  12.         done
  13. }

  14. refresh

复制代码


直接运行即可

以前一直用 C,前两天为了批量下载在线的漫画才开始用 sh,所以代码写得很丑陋,也缺少必要的错误检查(不会),大家权当笑话看吧。
发表于 2006-12-25 20:27:42 | 显示全部楼层
  1. url=(`more ~/.lftp/bookmarks | awk '{print $1}'`);\
  2. for i in $url;do lftp -c "open $i && ls -R > file.$i";done
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-12-25 20:35:42 | 显示全部楼层
awk '{print $1}' ~/.lftp/bookmarks | while read url; do lftp -c "open $url && ls -R >file.$url"; done
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-25 21:00:42 | 显示全部楼层
虚心的收了

用这种方法来学习果然是比看手册或者教材要来得快呢
回复 支持 反对

使用道具 举报

发表于 2006-12-26 00:26:13 | 显示全部楼层
不少管理员会把 ls -R给禁掉
这条命令功耗还是挺大的,呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-26 19:20:10 | 显示全部楼层
其实如果是那些较大的公共站点,即使禁掉了 ls -R,一般它们也会提供其它方式的搜索方法,比如 Web 形式的搜索页,只有私人 FTP 才有必要使用这种方法。而且我收集的都是认识的兄弟们的站点,所以他们会原谅我的:)

P.S. 话说写 sh 脚本真的是又好玩又有用,以后要认真的系统学一学。
回复 支持 反对

使用道具 举报

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

本版积分规则

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