linux – 为什么chmod在递归运行时会给出“没有这样的文件或目录”?

我可以直接更改文件的权限:
# chmod --changes --recursive ug+rwX       /var/www/shared/tmp/cache/assets/BA0/280/sprockets%2F286302903364106648b609d708884f78

我还可以更改包含该文件的目录的权限:

# chmod --changes --recursive ug+rwX       /var/www/shared/tmp/cache/assets/BA0/280

当我尝试以递归方式更改包含该目录的目录的权限时,我收到有关以前找不到的目录的错误

# chmod --changes --recursive ug+rwX       /var/www/shared/tmp/cache/assets/BA0
chmod: getting new attributes of `280': No such file or directory

当前的权限,即使我不知道这可能有什么影响,看起来像这样:

# ls -alR /var/www/shared/tmp/cache/assets/BA0
/var/www/shared/tmp/cache/assets/BA0:
total 20
drwxrwsr-x   3 rails rails  4096 Jun  4 09:54 .
drwxrwsr-x 569 rails rails 12288 Jun  4 09:54 ..
drwxrwsr-x   2 rails rails  4096 Jun  4 09:54 280

/var/www/shared/tmp/cache/assets/BA0/280:
total 12
drwxrwsr-x 2 rails rails 4096 Jun  4 09:54 .
drwxrwsr-x 3 rails rails 4096 Jun  4 09:54 ..
-rw-rw-r-- 1 rails rails  481 Jun  4 09:54 sprockets%2F286302903364106648b609d708884f78

我以root身份运行命令.任何想法?

解决方法

这个bug看起来很相关:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=706097

我可以使用coreutils 8.13-3.5在debian 7中重现它.

我认为不使用“–changes”或“–verbose”可以解决问题.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...