shell 删除-项目不删除文件夹

c3frrgcw  于 2023-03-09  发布在  Shell
关注(0)|答案(1)|浏览(203)

我需要删除文件夹,但收到错误can't remove because directory is not empty
我使用了以下命令:

Remove-Item \\wsl.localhost\Debian\home\my_folder_to_delete -Recurse -Force

如何强制删除?
PS:我在Windows 11上使用PowerShell
非常感谢

cwdobuhd

cwdobuhd1#

this answer中,很可能WSL仍在访问该目录(或其中的某个文件)。

    • 重要信息**:对于下面的所有答案,请确保目录不包含任何关键文件或指向关键目录的符号链接,因为您将递归删除其中的所有内容。
选项1:让Windows PowerShell来实现
  • 不建议使用,只是为了说明问题和解决方法。有关正确的方法,请参阅选项2。*
  • 退出可能正在运行的任何WSL shell
  • 从PowerShell:
wsl --shutdown

应在"使用中"文件中发布。

  • 请重试Remove-Item命令。
选项2:Linux方式

从建议从Linux shell执行此操作的评论中可以看出:
你知道我怎么用Linux shell吗?我是这方面的初学者
做个初学者没什么不好(我们都曾一度如此),但请记住,WSL * 在大多数方面都是 * Linux。了解一些"Linux基础知识"对于了解WSL是非常必要的。* 旁注--我正在考虑在YouTube上做一个关于使用WSL学习Linux的系列文章。如果感兴趣,请关注我的Profile。然后在评论中告诉我你是否对此感兴趣。*
\\wsl.localhost\Debian\home\my_folder_to_delete
这在Debian中被翻译成/home/my_folder_to_delete。记住这一点,创建或想要删除它是一个奇怪的目录。只要确保你没有删除你的主目录,因为这会导致问题。
但要移除它(最安全的):

cd /home
[ ! -L my_folder_to_delete] && rm -rf --one-file-system my_folder_to_delete

通常,在Linux中,一个简单的rm -rf my_folder_to_delete就足够了,但这是我的一个偏执狂,过度保护的命令版本,以避免类似this的事情发生。
请注意,如果您将目录创建为sudoroot,则可能必须使用以下命令:

cd /home
[ ! -L my_folder_to_delete] && sudo rm -rf --one-file-system my_folder_to_delete
选项3:Linux + PowerShell方式

您可以在Debian中使用 * Linux * 版本的PowerShell。请参阅here了解安装说明。您甚至可以使用chsh命令将用户shell设置为PowerShell。
不过,老实说,我不能决定这对Linux新手来说是个好主意还是坏主意。

相关问题