我有合法的需要清空我的帐户无权访问的目录(它是应用程序使用的缓存目录,由运行应用程序的帐户拥有。)我的帐户具有完全sudo权限(我认为),但我不知道如何删除相关目录的内容。我的账号进不去cd目录,只能进父目录。
sudo rm directory/*
Run Code Online (Sandbox Code Playgroud)
给出回应
cannot remove `directory/*': no such file or directory
Run Code Online (Sandbox Code Playgroud)
这似乎是一个应该有一个简单答案的问题,但我找不到它。
编辑:有问题的目录绝对不是空的:
sudo ls directory/
Run Code Online (Sandbox Code Playgroud)
返回超过 1000 个文件名。
Omn*_*nce 11
您遇到问题是因为您的 shell 试图扩展*到文件列表中,但由于您无权读取该目录,因此无法扩展。
我能想到两件可行的事情
sudo bash -c "rm directory/*"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,* 不是由您扩展的,而是由可以读取目录的 root 用户扩展的
或者
sudo find directory -type f -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
以上只会删除文件,而不是目录(否则它会directory连同它的内容一起删除),但我觉得不太容易出错。
编辑:在第一个选项中,我不小心写了 directory.* 而不是 directory/*
| 归档时间: |
|
| 查看次数: |
14595 次 |
| 最近记录: |