为什么我不能从命令行删除.svn目录中的条目文件?

为什么我不能从命令行删除.svn目录中的条目文件?,svn,macos,Svn,Macos,首先,这些都是在MacOSX 10.6.4版上完成的 我复制了一个文件树,其中包含一些从subversion签出的java代码。我想删除树中的所有.svn文件。因此,我使用了以下命令: find . -name .svn -exec rm -fr .svn {} \; 我收到了这样的信息: rm: ./repository/entity/.svn: Directory not empty $ ls -ld . -r--r--r-- 1 tgia staff 1250 Aug 13 10

首先,这些都是在MacOSX 10.6.4版上完成的

我复制了一个文件树,其中包含一些从subversion签出的java代码。我想删除树中的所有.svn文件。因此,我使用了以下命令:

find . -name .svn -exec rm -fr .svn {} \;
我收到了这样的信息:

rm: ./repository/entity/.svn: Directory not empty
$ ls -ld .
-r--r--r--  1 tgia  staff  1250 Aug 13 10:48 entries
$ ls -ld .
drwxr-xr-x  4 tgia  staff  136 Aug 20 16:55 .
我在目录中查找,结果如下:

rm: ./repository/entity/.svn: Directory not empty
$ ls -ld .
-r--r--r--  1 tgia  staff  1250 Aug 13 10:48 entries
$ ls -ld .
drwxr-xr-x  4 tgia  staff  136 Aug 20 16:55 .
该文件的父目录如下所示:

rm: ./repository/entity/.svn: Directory not empty
$ ls -ld .
-r--r--r--  1 tgia  staff  1250 Aug 13 10:48 entries
$ ls -ld .
drwxr-xr-x  4 tgia  staff  136 Aug 20 16:55 .
确定,更改文件的权限:

$ chmod u+w entries 
chmod: Unable to change file mode on entries: Operation not permitted 
我不明白,这些文件是怎么回事?我使用chmod尝试的任何操作似乎都不会更改文件权限。文件所有权是正确的。我是tgia。世界跆拳道联盟?即使是根也不能改变它们

$ sudo chmod u+w entries
Password:
chmod: Unable to change file mode on entries: Operation not permitted

幸运的是,root可以删除它们

我不确定您的命令行是否完全正确。尝试:

find . -name .svn | xargs rm -rf
我认为您的命令行将尝试执行以下命令:

rm -fr .svn subdir1/.svn
rm -fr .svn subdir2/.svn

也就是说,您有一个额外的.svn。

我不确定您的命令行是否完全正确。尝试:

find . -name .svn | xargs rm -rf
我认为您的命令行将尝试执行以下命令:

rm -fr .svn subdir1/.svn
rm -fr .svn subdir2/.svn
也就是说,您在其中有一个额外的.svn。

查找-name.svn-exec rm-fr.svn{}\

应该是

找到-name.svn-exec rm-fr{}\

查找-name.svn-exec rm-fr.svn{}\

应该是


找到-name.svn-exec rm-fr{}\

I除了通常的rwx标志外,OSX还有一个特殊的UCHG标志。这可能就是你遇到的

在用户界面中,您可以在“获取信息”窗口中设置或取消设置它。单击锁定复选框

在命令行上,使用chflags uchg filename设置它。或将nouchg文件名设置为unset


通过smb交换时,Windows上设置了只读标志的文件将显示为设置了uchg标志的文件。这就是我遇到它的原因。

除了通常的rwx标志外,OSX还有一个特殊的UCHG标志。这可能就是你遇到的

在用户界面中,您可以在“获取信息”窗口中设置或取消设置它。单击锁定复选框

在命令行上,使用chflags uchg filename设置它。或将nouchg文件名设置为unset


通过smb交换时,Windows上设置了只读标志的文件将显示为设置了uchg标志的文件。这就是我遇到它的原因。

我必须取消uappnd标志以及uchg标志的设置,即:

find .svn -type f |xargs sudo chflags nouappnd,nouchg

我必须取消uappnd标志以及uchg标志的设置,即:

find .svn -type f |xargs sudo chflags nouappnd,nouchg

为什么要删除此处的所有.svn目录?svn导出是一个更干净的选择。为什么要删除此处的所有.svn目录?svn导出是一个更干净的选择。是的,实际上我输入错了,我使用的命令是find-name.svn-exec rm-fr{}\;这不会删除条目。。。只有当我删除名为entry as root的文件时,它才起作用。非常奇怪。是的,实际上我打错了,我用的命令是find-name.svn-exec rm-fr{}\;这不会删除条目。。。只有当我删除名为entry as root的文件时,它才起作用。非常奇怪。我用chflags-R 0000/path/to/where删除了所有这些扩展标志。我用chflags-R 0000/path/to/where删除了所有这些扩展标志