rm: cannot remove `/usr/local/tmp/‘: Directory not empty

59 篇文章 1 订阅

###问题
删除目录时遇到错误提示:

rm: cannot remove `/usr/local/tmp/’: Directory not empty

即使用rm -rf ,还是会出现相同提示。

###原因
要删除的目录下有文件正在被使用。

###验证

####情况1:
创建tmp目录,并在其下创建文件test.txt

$ mkdir tmp
$ echo “123” > tmp/test.txt

删除目录,非常顺利

$ rm -rf tmp/

####情况2:
接着看,如果有文件被占用的情况。

写一段占用文件的代码如下。

#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main()
{
        int i = 0;
        char buffer[10] = {0};
        while(1)
        {
                FILE *fp = fopen("tmp/test.txt", "w");
                if (fp == NULL)
                {
                        printf("open failed.\n");
                        return -1;
                }

                memset(buffer,0,10);
                sprintf(buffer,"%d\n", i);

                fputs(buffer, fp);
		fflush(fp);
                fclose(fp);

                sleep(0.5);
                ++i;
        }
        return 0;
}

编译,执行

$ gcc test.c -o test
$ ./test &
[1] 16293

该程序打开文件,写入内容,关闭文件,一直循环,保持占用文件。

尝试删除目录,此时得到错误提示

$ rm -rf tmp/
rm: cannot remove `tmp': Directory not empty

由此证明,当目录下有文件正在被使用时,如果要删除目录,会得到错误提示的问题。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在 Linux/MacOS 系统上执行 `sudo rm /usr/local/bin/docker-compose` 命令时出现 `/usr/local/bin/docker-compose: No such file or directory` 的错误,可能是因为 Docker Compose 没有被正确安装或者安装路径不在 `/usr/local/bin` 目录下。你可以按照以下步骤来解决这个问题: 1. 确认你已经安装了 Docker Compose。可以在命令行中输入以下命令:`docker-compose version`,如果输出了 Docker Compose 的版本信息,则说明已经安装成功; 2. 如果你没有安装 Docker Compose,可以参考 Docker 官方文档安装:https://docs.docker.com/compose/install/; 3. 如果已经安装了 Docker Compose,但是仍然出现了这个问题,可能是因为 Docker Compose 安装路径不在 `/usr/local/bin` 目录下。你可以按照以下步骤来查找 Docker Compose 的安装路径: - 在命令行中输入以下命令,查找 Docker Compose 的安装路径: ``` which docker-compose ``` - 如果输出了 Docker Compose 的安装路径,例如 `/usr/bin/docker-compose`,则说明 Docker Compose 安装路径不在 `/usr/local/bin` 目录下; - 如果没有输出 Docker Compose 的安装路径,则说明 Docker Compose 没有被正确安装,你需要重新安装 Docker Compose。 4. 将 Docker Compose 的安装路径添加到系统环境变量中。具体步骤如下: - 打开系统环境变量设置:在命令行中输入以下命令: ``` export PATH=$PATH:/path/to/docker-compose ``` 其中,`/path/to/docker-compose` 是 Docker Compose 的安装路径。 - 保存设置并关闭窗口,重新打开命令行窗口,再次输入命令:`docker-compose version`,如果输出了 Docker Compose 的版本信息,则说明已经解决了这个问题。 如果以上操作无法解决问题,你可以尝试重新安装 Docker Compose。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值