通过文件的 inode 号来删除文件
2015-01-12 22:37
232 查看
通过文件的 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 |
相关文章推荐
- 通过文件的inode号来删除文件
- 通过 Inode 删除文件
- linux 通过inode删除文件
- 通过inode删除指定文件
- Windows API 实现查找、删除任意类型的文件_VERSION20120612(vc6.0调试通过)(2012.6.12最新修改)
- Windows API 实现查找、删除任意类型的文件_VERSION20120605(vc6.0调试通过)(2012.6.5最新修改)
- android, 删除SD卡音乐文件。通过getContentResolver读取音乐文件,可以获取到一个完整的路径,直接new File(这括号写获取的路径).delete();
- 如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值
- Windows API c实现查找、删除任意类型的文件_VERSION终结版(vc6.0调试通过)
- Linux中通过命令直接删除文件中最后一行
- 通过SQL存储过程删除过期的数据库Bak备份文件或其它文件
- log view for sql server (一款通过解析MSSql2008日志文件恢复表数据删除的工具软件)
- DELPHI通过ACTIVESYNC连接到移动设备,并进行文件的复制,删除等操作!
- 如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值
- 通过rman的delete命令删除归档日志文件
- 通过forfiles命令自动删除几天前的文件
- 如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值
- 通过CLR存储过程删除过期的数据库Bak备份文件
- 利用Asp.net IO.File类完成文件新建复制删除操作(代码调试通过)(转)
- 通过对inode的修改对文件操作进行扩充