Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5352300
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类: LINUX

2007-03-11 19:37:26

通过文件的 inode 号来删除文件

   1 #!/bin/bash
   2 # idelete.sh: 通过文件的inode号来删除文件.
   3
   4 #  当文件名以一个非法字符开头的时候, 这就非常有用了,
   5 #+ 比如 ? 或 -.
   6
   7 ARGCOUNT=1                      # 文件名参数必须被传递到脚本中.
   8 E_WRONGARGS=70
   9 E_FILE_NOT_EXIST=71
  10 E_CHANGED_MIND=72
  11
  12 if [ $# -ne "$ARGCOUNT" ]
  13 then
  14   echo "Usage: `basename $0` filename"
  15   exit $E_WRONGARGS
  16 fi  
  17
  18 if [ ! -e "$1" ]
  19 then
  20   echo "File \""$1"\" does not exist."
  21   exit $E_FILE_NOT_EXIST
  22 fi  
  23
  24 inum=`ls -i | grep "$1" | awk '{print $1}'`
  25 # inum = inode (索引节点) 号.
  26 # --------------------------------------------------------
  27 # 每个文件都有一个inode号, 这个号用来记录文件物理地址信息.
  28 # --------------------------------------------------------
  29
  30 echo; echo -n "Are you absolutely sure you want to delete \"$1\" (y/n)? "
  31 # 'rm' 命令的 '-v' 选项也会问这句话.
  32 read answer
  33 case "$answer" in
  34 [nN]) echo "Changed your mind, huh?"
  35       exit $E_CHANGED_MIND
  36       ;;
  37 *)    echo "Deleting file \"$1\".";;
  38 esac
  39
  40 find . -inum $inum -exec rm {} \;
  41 #                           ^^
  42 #        大括号就是"find"命令
  43 #+       用来替换文本输出的地方.
  44 echo "File "\"$1"\" deleted!"
  45
  46 exit 0

第40句的参数 -inum是什么意思啊?我man find 的时候没有找到这个参数啊
阅读(1443) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~