首先,这一切都是在Mac OS X上完成的,版本10.6.4
我复制了一个文件树,其中包含一些已经从subversion中检出的java代码.我想删除该树中的所有.svn文件.所以我使用了以下命令:
find . -name .svn -exec rm -fr .svn {} \;
Run Code Online (Sandbox Code Playgroud)
我收到这样的消息:
rm: ./repository/entity/.svn: Directory not empty
Run Code Online (Sandbox Code Playgroud)
我查看了目录,它看起来像这样:
$ ls -ld .
-r--r--r-- 1 tgia staff 1250 Aug 13 10:48 entries
Run Code Online (Sandbox Code Playgroud)
该文件的父目录如下所示:
$ ls -ld .
drwxr-xr-x 4 tgia staff 136 Aug 20 16:55 .
Run Code Online (Sandbox Code Playgroud)
好的,更改文件的权限:
$ chmod u+w entries
chmod: Unable to change file mode on entries: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我不懂,这些文件怎么了?我没有尝试使用chmod似乎改变了文件权限.文件所有权是正确的.我很痛苦.WTF?即使root也无法改变它们.
$ sudo chmod u+w entries
Password:
chmod: Unable to change file mode on entries: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
幸运的是root可以删除它们......
除了通常的rwx标志外,OSX还有一个特殊的UCHG标志.这可能是你遇到的.
在用户界面中,您可以在"获取信息"窗口中设置或取消设置它.单击"已锁定"复选框.
在命令行上用于chflags uchg filename设置它.或者chflags nouchg filename取消设置.
在Windows上设置了只读标志的文件将在通过smb进行交换时显示设置的uchg标志.这就是我遇到它的方式.
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |