Suse环境File.mkdirs()创建的目录判断是否可写返回false的问题

使用Apache common io的FileUtils.copyDirectory将一个目录拷贝到另一个目录,执行时总是报目标目录不可写,但是目标目录是在拷贝前创建了,telnet到后台查看用户对该目录的权限也是有的,很奇怪!
多次尝试发现:如果构造File的路径中有“..”,那么使用mkdirs创建目录后使用canWrite判断是否可写就会返回false,而如果路径中没有的话就会返回true,通过使用getCanonicalFile返回规范形式的File对象进行操作可以规避这个问题,如下
        File file = new File("/opt/tools/pkgmgr/backup/run/../tmp");
        file = file.getCanonicalFile();
        if (file.mkdirs()) {
            System.out.println(file.canWrite());
        }
### 回答1: SUSE是一家全球领先的企业级Linux解决方案提供商,其操作系统提供了强大的容器化技术支持,其中包括Docker。如果需要SUSE上卸载或移除Docker,可以按照以下步骤操作。 首先,打开终端并使用root用户登录系统。然后,执行以下命令来卸载Docker及相关组件: ``` zypper remove docker ``` 此命令将从系统中卸载Docker包及其依赖项。 接下来,删除Docker的配置文件和数据目录。执行以下命令来删除配置文件: ``` rm -rf /etc/docker ``` 执行以下命令来删除数据目录: ``` rm -rf /var/lib/docker ``` 这将删除Docker的配置文件和Docker容器、镜像、卷等数据。 最后,执行以下命令来清除不再使用的软件包及其依赖项: ``` zypper clean ``` 这将清除系统中未使用的软件包缓存。 完成上述步骤后,Docker已成功地从SUSE系统中移除。如果以后需要重新安装Docker,可以根据需要再次在SUSE上进行安装。 ### 回答2: 使用SUSE系统移除Docker的方法有多种。以下是一种常用的方法: 1. 首先,我们需要通过以下命令来停止和卸载正在运行的Docker容器: ``` sudo docker stop $(sudo docker ps -a -q) sudo docker rm $(sudo docker ps -a -q) ``` 2. 接下来,我们可以通过以下命令来卸载Docker软件包: ``` sudo zypper remove docker ``` 3. 如果您还安装了Docker的依赖包,您可以通过以下命令来卸载它们: ``` sudo zypper remove docker-compose ``` 4. 最后,我们可以通过以下命令来删除Docker安装的文件和目录: ``` sudo rm -rf /var/lib/docker sudo rm -rf /var/run/docker ``` 另外,如果您使用的是Docker版本1.13或更高版本,则需要执行以下命令: ``` sudo rm -rf /etc/docker ``` 如果您还想删除Docker镜像和卷的存储位置,则可以使用以下命令: ``` sudo rm -rf /var/lib/docker/volumes sudo rm -rf /var/lib/docker/image ``` 上述方法可用于SUSE系统中移除Docker。与其他Linux系统有所不同,但大致步骤相似。请根据您的具体情况进行操作。 ### 回答3: 要在Suse系统中移除Docker,可以按照以下步骤进行操作: 1. 首先,以root用户身份登录到Suse系统。 2. 打开终端,并输入以下命令以停止Docker服务: ``` systemctl stop docker ``` 3. 接下来,输入以下命令以卸载Docker软件包: ``` zypper remove docker ``` 4. 在卸载过程中,系统会提示确认是否继续。输入"y"并按下回车键以确认。 5. 卸载完成后,还需要删除Docker的相关文件和目录。通过以下命令删除Docker的默认目录: ``` rm -rf /var/lib/docker ``` 6. 最后,还可以清理不再使用的软件包依赖关系。输入以下命令以清理Docker软件包的依赖项: ``` zypper clean ``` 完成以上步骤后,Docker已从Suse系统中成功移除。你可以通过输入以下命令来验证是否已移除: ``` docker -v ``` 如果出现 "Command not found" 的提示,说明Docker已被成功移除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值