Linux 版 (精华区)
发信人: cucme (说你说我), 信区: Linux
标 题: Re: Leeward的精华区打包程序
发信站: 紫 丁 香 (Sun Aug 22 20:31:07 1999), 转信
发信人: Leeward (学习学习再学习,干活干活再干活), 信区: BBSMan_Dev
发信站: BBS 水木清华站 (Sat Aug 7 12:48:43 1999)
【 在 seeker (你好) 的大作中提到: 】
: 就是那个
: /* Making the X of a board into HTML format and then tar, gzip -- compress. /
: /**/
: /* Leeward 1998.02.17 (Modified 1998.05.22, 1998.08.28)*/
: 运行时总是提示如
: Unexpected error: Can not open file "../0Announce/groups/GROUP_6/History/14/1"
: 照说没有超过路径长度(256),文件也确实存在,可以在shell下打开看,
: 会是什么错误呢?
: 再次试验发现好象出错时程序在要打开的文件名后面加了一个'*'号,所以
:找不到,是怎么回事呢?
那应该是那个文件被错误地给予了可执行权限。
我那个小程序用 ls -AFR 获取文件列表,可执行文件是在文件名后附加了 * 字符的。
这是 Unexpected Error 也就是打不开文件的原因啦。
(具体参看 man ls 中的:
-F Puts a / (slash) after each file name if the file is a directory,
an * (asterisk) if the file can be executed, an = (equal sign) if
the file is a socket, a | (pipe) sign if the file is a FIFO, and an
@ for a symbolic link.
呵呵,我只考虑了目录后面的 / 字符,* = | @ 都没有考虑:-()
//Sorry 这个的确是写程序时的疏忽,没有意料到的错误。
解决方法: 1. 用 find 指令去除所有不该有的执行权限
find ~bbs/0Announce -type f -exec chmod a-x {} \;
或者 2. 改改 HTML 化并打包的程序,处理这种(以及类似)情况。
--
我 们 的 一 切 追 求 和 作 为, 都 有 一 个 令 人 厌 倦 的 过 程
作 为 一 个 不 识 厌 倦 为 何 物 的 人, 便 掌 握 了 生 命 的 全 部 秘 密
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.243.5]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.241毫秒