如何列出存储库中的文件/目录?

时间:2016-07-27 08:44:12

标签: linux bash macos

我想通过运行命令获取存储库下的所有文件/导演名称。是否有像wget这样的命令行工具来执行此操作?

例如:存储库网址为repository

我想获得档案/导演名单

的列表
  

1.0 /
  1.1A /
  1.1B /
  1.1C /
  1.1D /
  1.2 /
  1.3 /
  1.4 /
  1.6 /
  1.8 /
  1.9 /
  2.0 /
  2.1 /
  2.2 /
  2.3 /
  2.4 / binaries / doc / stable / index.txt
  ruby-1.8.5-p115.tar.bz2 ruby​​-1.8.5-p115.tar.gz ruby​​-1.8.5-p115.zip
  ruby-1.8.6-p114.tar.bz2 ruby​​-1.8.6-p114.tar.gz ruby​​-1.8.6-p114.zip
  ruby-1.8.6-p383.tar.bz2 ruby​​-1.8.6-p383.tar.gz ruby​​-1.8.6-p383.zip
  ruby-1.8.6-p388.tar.bz2 ruby​​-1.8.6-p388.tar.gz ruby​​-1.8.6-p388.zip
  ruby-1.8.6-p398.tar.bz2 ruby​​-1.8.6-p398.tar.gz ruby​​-1.8.6-p398.zip
  ruby-1.8.6-p399.tar.bz2 ruby​​-1.8.6-p399.tar.gz ruby​​-1.8.6-p399.zip
  ruby-1.8.6-p420.tar.bz2 ruby​​-1.8.6-p420.tar.gz ruby​​-1.8.6-p420.zip
  ruby-1.8.7-p174.tar.bz2 ruby​​-1.8.7-p174.tar.gz ruby​​-1.8.7-p174.zip
  ruby-1.8.7-p248.tar.bz2 ruby​​-1.8.7-p248.tar.gz ruby​​-1.8.7-p248.zip
  ruby-1.8.7-p249.tar.bz2 ruby​​-1.8.7-p249.tar.gz ruby​​-1.8.7-p249.zip
  ...

2 个答案:

答案 0 :(得分:2)

您可以使用wget并过滤结果:

wget -O - "https://ruby.taobao.org/mirrors/ruby/" | grep href | cut -d"\"" -f 2 > list.txt

现在cat list.txt会给出:

../
1.0/
1.1a/
1.1b/
1.1c/
1.1d/
1.2/
1.3/
1.4/
1.6/
1.8/
1.9/
2.0/
2.1/
2.2/
2.3/
2.4/
binaries/
doc/
stable/
index.html
index.txt
...

答案 1 :(得分:0)

使用正则表达式解析xml / html并不是一个好主意。然而,它有助于脏和快速使用。请注意,请勿将其放入生产代码中。

使用正则表达式,您可以做更多。检查HTML代码后,这些行应该适合您:

curl 'url'|grep -Po '(?<=>)[^<]+'

curl 'url'|grep -Po '(?<=>)[^<]+(?=</a>)` 

第二个将在<a href="foo">KEY</a>

中提取KEY