参考: http://blog.csdn.net/zjjyliuweijie/article/details/6577037

http://blog.csdn.net/huangzhtao/article/details/6038504

http://blog.csdn.net/hu_shengyang/article/details/7828998

为什么Cygwin的安装目录(在win7重装后)会如此难以删除?

在正常情况下,Cygwin的反安装程序自然是删除该目录的最好选择。但win7的重装会反安装程序,这之后再要删除该目录就有点麻烦了。因为Cygwin 所模拟的是Linux的权限管理体系,这跟Windows的默认权限管理存在着一些冲突。不信的话,您可以用右键查看一下该目录属性中的安全选项,就会在"组或用户名"一栏中看到一些无法识别的用户(带问号),它们其实是系统重装之前的用户,它会有一串用于唯一识别的数字。所以哪怕我们重装系统之后再使用原来的用户名,这个唯一识别号也是完全不同的。因此,我们当前登录的帐号对文件没有修改和删除的权限。

如何删除Cygwin?

在win7下,人们对于无法修改或删除的文件夹及文件,一般会采取先获得权限再进行修改的处理方式,这种方式通常包括两个步骤:首先修改目标文件夹及其文件的所有者,使得当前用户获得对其的访问权限。然而在win7中,如果要删除一个文件夹的话,需要对该文件夹下的所有文件和文件夹都拥有权限才能删除,但在图形界面中,修改一个文件夹的用户权限仅对该文件夹下的第一层文件和文件夹有效,无法递归至更深层次的文件及文件夹。而cygwin安装目录的深度很大,且文件众多,手动修改起来会显得非常麻烦,耗时,因此本人强烈建议大家选择第2中方法,程序修改。

手动删除:

  1. 右键点要删除Cygwin文件夹,依次选属性->安全->高级->所有者->编辑,将所有者改为你的登录帐户,勾选下方"替换子容器和对象的所有者"。
  2. 在 属性->安全->高级对话框中选"审核选项卡",点"继续",点"添加",输入:Everyone,点"确定"添加Everyone帐户,在弹出的对话框中将"完全控制"后面的允许勾上,勾选"使用可从此对象继承的权限替换所有子对象权限",点击"确定"。

现在,我们可以顺利删除Cygwin文件夹了。显而易见,手动删除是件非常痛苦的工作。

程序删除:

  1. 使用takeown.exe修改cygwin文件夹及其子文件的权限。takeown.exe可从网上下载,下载完成之后,将takeown.exe放在cygwin的安装目录下,然后在cmd中输入:
    takeown.exe /F * /R
    该命令会负责把takedown所处目录下的所有文件和文件夹的所有者修改成当前用户,并且可对这些目录进行递归操作,令其对所有子目录和子文件生效。
  2. 用win7系统提供的命令修改用户对目标文件夹下所有子目录的访问权限。该命令为Icacls,其用法亦可在网上搜到。
    Icacls \cygwin /T /grant user:F
    该命令会赋予user用户cygwin文件夹及其所有子目录和子文件的完全控制(F)权限。

以上两个步骤都需要一定的处理时间,2、3分钟左右,请务必要耐心等其执行完毕。

Win7重装后,如何删除cygwin目录?的更多相关文章

  1. Winform退出运行后,删除运行目录(批处理方法)

    /// <summary> /// Winform程序退出删除运行目录 FormClosed调用 /// </summary> private void DeletExeFil ...

  2. win7重装后恢复grub和ubuntu14

    没有光盘和优盘启动盘,可以在win7下安装easybcd,添加一个启动选项为linux grub2,启动后进入ubutnu,执行如下: sudo -i   //取得root权限 fdisk -l    ...

  3. 重装系统后删除Cygwin文件夹

    1.右键点要删除Cygwin 文件夹,依次选属性-安全-高级-所有者-编辑,将所有者改为你的登录帐户,勾选下方“替换子容器和对象的所有者”. 2.在 属性-安全-高级对话框中选 权限选项卡,点更改权限 ...

  4. 重装系统后如何删除系统自带的office2003

    背景:操作系统重装后,系统自带的office2003版本太低不好使用,需要安装更高版本的如2010,但是卸载时提示“无法打开此修补程序包……”,从而无法卸载.经网上查询,采用以下解决办法: 在注册表中 ...

  5. Linux系统下/tmp目录文件重启后自动删除,不重启自动删除10天前的/TMP的文件(转)

    /tmp目录文件重启后自动删除现在知道有ubuntu和solaris系统source:http://blog.chinaunix.net/uid-26212859-id-3567875.html经常会 ...

  6. cloudera集群开启kerberos认证后,删除zk中的/hbase目录

    问题 在cdh集群中开启了kerberos认证,hbase集群出现一点问题,需要通过zookeeper-client访问zookeeper,删除/hbase节点时候报错:Authentication ...

  7. 彻底删除Cygwin

    cygwin是一个好软件,凝聚了大家很多的心血,在win10下运行的很流畅,远比微软自己搞得那个ubuntu顺手,但它有个小问题,重装系统后,如果原来的cgywin文件夹没有删除的话,你会发现你无法删 ...

  8. 各种隐藏 WebShell、创建、删除畸形目录、特殊文件名、黑帽SEO作弊(转自核大大)

    其实这个问题,经常有朋友问我,我也都帮大家解决了…… 但是现在这些现象越来越严重,而且手法毒辣.隐蔽.变态,清除了又来了,删掉了又恢复了,最后直接找不到文件了,但是访问网站还在,急的各大管理员.站长抓 ...

  9. win10 + Ubuntu 双系统,重装后的引导修复,时间调整和启动项调整

    ▶ 原先为 win10 + Ubuntu 双系统,使用 grub2 作引导,在重装了 win10 (大作死升到了1803)后系统重写了引导,启动项里找不到 Ubuntu,需要修复. ● 参考[http ...

随机推荐

  1. 今天的感悟,对于python中的list()与w3c教程

    首先本来想百度一下python定义列表的时候用 list()与直接用[]有什么区别,其中没有找到相关直接资料,看到了W3c菜鸟教程中之前看到的tuple,不禁想起list(tuple)是用来将元组转换 ...

  2. Deep Learning 5_深度学习UFLDL教程:PCA and Whitening_Exercise(斯坦福大学深度学习教程)

    前言 本文是基于Exercise:PCA and Whitening的练习. 理论知识见:UFLDL教程. 实验内容:从10张512*512自然图像中随机选取10000个12*12的图像块(patch ...

  3. myeclipse中disable maven nature

    1.直接原因:出现这个问题,一般都是因为手抖误操作. 但是出现了问题,还不知道从何查起. 可能出现的场景是eclipse安装Maven插件后,右键项目却找不到Maven按钮,继而无法编译项目. 2.实 ...

  4. HBase之show table

    import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import or ...

  5. 【转】十分钟搞定pandas

    原文链接:http://www.cnblogs.com/chaosimple/p/4153083.html 关于pandas的入门介绍,比较全,也比较实在,特此记录~ 还有关于某同学的pandas学习 ...

  6. Source Insight简介及下载破解

    对于长期混迹于.net平台的开发人员来说,研究C源码不是很常见,但是有时候我们不得不涉及c的研究,因为许多优秀的开源软件是用C/C++写就.查看C源码的利器除了VS外,还有另一个,那就是Source ...

  7. java 多线程—— 线程等待与唤醒

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

  8. 困扰我多年的Connection reset问题

    第一次出现:是thrift的python client去请求server,发现偶尔出现这个问题 第二次:接入第三方的api,去请求数据时,发现一个接入方的api第一次总是报这个错,当时又没有做处理,导 ...

  9. iOS开发UI篇—字典转模型

    iOS开发UI篇—字典转模型 一.能完成功能的“问题代码” 1.从plist中加载的数据 2.实现的代码 // // LFViewController.m // 03-应用管理 // // Creat ...

  10. sscanf函数

    sscanf函数用法举例 #include <stdio.h> #include <string.h> #define N 512 int main() { char buf[ ...