cod*_*ama 5 linux file-management
我有以下结构:
/.svn
/bla/.svn
/hello/.svn
/bla/bla/bla/.svn
... etc
Run Code Online (Sandbox Code Playgroud)
我想删除所有 .svn 文件夹。我该怎么做?
它不是:
rm -rf .svn
Run Code Online (Sandbox Code Playgroud)
在 Windows 中,您使用 /s 触发器。你是怎么做到的?
Pet*_*ric 11
使用命令查找:
find . -type d -name .svn -exec rm -rf {} \;
{} 是文件名,-type d 表示目录。
警告:请谨慎使用 find 和 rm!
find . -depth -type d -name .svn -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)
与已经提出的其他解决方案的差异:
如果没有-depth,该命令将在删除后尝试递归到 .svn 目录,从而导致错误消息。
没有-type d(将您的搜索限制为目录),您还将删除给定名称的文件。(很可能你不会有任何东西,但是在组合使用“find”和“rm”时你不应该冒险。)
如果您的确切需要是删除.svn目录而不是删除特定命名目录的更通用的解决方案,您应该考虑使用svn export:
$ svn export . /tmp/new-dir
Run Code Online (Sandbox Code Playgroud)
这将在当前目录中创建一个 svn 工作区的副本到一个新目录中/tmp/new-dir。您无需先创建新目录。Subversion 会为你解决这个问题。
find . -name .svn -exec rm -rf {}\;
Run Code Online (Sandbox Code Playgroud)
应该为你工作。
它首先找到所有名为的文件夹.svn
然后执行rm -rf,然后对找到的每个文件夹
结果:
不再有 .svn 文件夹
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |