LinuxSir.cn,穿越时空的Linuxsir!

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

怎样获得mkfs.ext2源码?

[复制链接]
发表于 2008-4-21 00:51:31 | 显示全部楼层 |阅读模式
如题。
thx
发表于 2008-4-21 01:24:30 | 显示全部楼层
在gentoo里,连源代码都能帮你解压缩好,不用到处问,也不用到处找
不要要有我的script,
  1. #!/bin/bash
  2. filename=
  3. pkg=
  4. pflag=off
  5. fflag=off
  6. vflag=off
  7. while getopts vp:f: opt
  8. do
  9.     case "$opt" in
  10.       f)  fflag=on;filename="$OPTARG";;
  11.       p)  pflag=on;pkg="$OPTARG";;
  12.       v)  vflag=on;;
  13.       \?)
  14.                 echo >&2 "usage: $(basename $0) [-v] [-f filename | -p package]"
  15.           exit 1;;
  16.     esac
  17. done
  18. shift `expr $OPTIND - 1`
  19. if [[ $fflag == off && $pflag == off ]]
  20. then
  21.         echo >&2 "usage: $(basename $0) [-v] [-f filename | -p package]"
  22.         exit 1
  23. elif [[ $fflag == on && $pflag == on ]]
  24. then
  25.         echo >&2 "error: can't specify -p and -f at the same time"
  26.         exit 1
  27. elif [[ $fflag == on ]]
  28. then
  29.         export PS3="which one to unpack? "
  30.         if qfile $filename >/dev/null 2>&1; then
  31.                 pkgs=$(qfile -C $filename | cut -d " " -f 1 | sort -u | tr \\n " ")
  32.                 select pkg in $pkgs
  33.                 do
  34.                         break
  35.                 done
  36.         else
  37.                 echo >&2 "error: file "$filename" doesn't exists"
  38.                 exit 1
  39.         fi
  40. elif [[ $pflag == on ]]
  41. then
  42.         :
  43. fi
  44. if [[ $vflag == on ]]
  45. then
  46.         UNPACK_OUTPUT_REDIRECT=""
  47. else
  48.         UNPACK_OUTPUT_REDIRECT=">/dev/null 2>&1"
  49. fi
  50. echo "unpacking $pkg"
  51. EBUILD=$(equery w "$pkg")
  52. if [ -z $EBUILD ]
  53. then
  54.         echo "ebuild for $pkg not found"
  55.         exit 1
  56. else
  57.         echo "found ebuild: $EBUILD"
  58. fi
  59. WORKDIR=$(sed -re 's#/.*/.*/(.*)/(.*)/(.*).ebuild#/var/tmp/portage/\1/\3#' <<< ${EBUILD})
  60. if [ -d $WORKDIR ]
  61. then
  62.         echo "${WORKDIR} exists, will be deleted"
  63.         sudo rm -rf $WORKDIR
  64. fi
  65. sh -c "ebuild $EBUILD unpack $UNPACK_OUTPUT_REDIRECT"
  66. echo "unpacked to $WORKDIR"
复制代码

保存成一个文件,比如unpack
chmod +x unpack
./unpack -f mkfs.ext2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-21 14:21:13 | 显示全部楼层
极品啊~!
十分感谢
回复 支持 反对

使用道具 举报

发表于 2008-4-21 16:14:01 | 显示全部楼层
you are welcome
回复 支持 反对

使用道具 举报

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

本版积分规则

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