我正在尝试删除在漂白位的“擦除可用磁盘空间”过程中止后创建的三个空目录,我已经使用了所有建议的方法,但似乎都没有工作,我尝试用漂白位将它们切碎,然后使用诸如rm -d, rm -f, 之类的命令删除rm -r,我尝试重命名它们,移动它们,我什至用 17.04 替换了 Ubuntu 16.04,因为有可能会修复错误,但它们仍然存在。
这些目录位于单独的分区中,而不是在主目录中。他们的名字如下:
-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKRCD09GzmqmJfZ2rBA5rtBsWR1EAewq-fZWJCJhlO6r1aCqoRSRba1C8bPYrpk_5OW6Qi9mPC.zhyzqUwivpQfArgb9每当我尝试某事时,我都会收到以下消息:
无此文件或目录
以下是一些输出:
me@MyPC:~$ rm -f /media/me/702E29F142F/-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0??z1A62Sh25BS0pYZEby6J??DVvtMZavFTCUgQUpjuJU??CZ0pKspQLd40O3Zc9rzg??GRFcxNBKOgr7KnVwZw_A??4kkx4R9zq1oON8aP4y00??EY0AuIJYRdCs9v9oYNKr??FasQoMXwuLiw5lh0Z8J6??Jh8u8pjDNnP31p0oBYsj??TQTPUE1MXVqgAuWNjrht??EFuouXKR
me@MyPC:~$ rmdir -- $ 'CD09GzmqmJfZ2rBA5rtBsWR1EAewq-fZWJCJhlO6r1aC'
rmdir: failed to remove '$': No such file or directory
rmdir: failed to remove 'CD09GzmqmJfZ2rBA5rtBsWR1EAewq-fZWJCJhlO6r1aC': No such file or directory
me@MyPC:~$ rmdir -- 'CD09GzmqmJfZ2rBA5rtBsWR1EAewq-fZWJCJhlO6r1aC'
rmdir: failed to remove 'CD09GzmqmJfZ2rBA5rtBsWR1EAewq-fZWJCJhlO6r1aC': No such file or directory
me@MyPC:~$ rmdir 'CD09GzmqmJfZ2rBA5rtBsWR1EAewq-fZWJCJhlO6r1aC'
rmdir: failed to remove 'CD09GzmqmJfZ2rBA5rtBsWR1EAewq-fZWJCJhlO6r1aC': No such file or directory
me@MyPC:~$ rmdir -- -9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR
rmdir: failed to remove '-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR': No such file or directory
me@MyPC:~$ sudo rmdir -- -9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR
rmdir: failed to remove '-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0z1A62Sh25BS0pYZEby6JDVvtMZavFTCUgQUpjuJUCZ0pKspQLd40O3Zc9rzgGRFcxNBKOgr7KnVwZw_A4kkx4R9zq1oON8aP4y00EY0AuIJYRdCs9v9oYNKrFasQoMXwuLiw5lh0Z8J6Jh8u8pjDNnP31p0oBYsjTQTPUE1MXVqgAuWNjrhtEFuouXKR': No such file or directory
me@MyPC:/media/me/702E29F142F2362F$ rmdir -- $'qoRSRba1C8bPYrpk_5OW6Qi9mPC.zhyzqUwivpQfArgb9'
rmdir: failed to remove 'qoRSRba1C8bPYrpk_5OW6Qi9mPC.zhyzqUwivpQfArgb9': No such file or directory
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 Nautilus 将其移至垃圾箱或删除时,它看起来像这样:
-,因此--请先传递或使用绝对路径。对于空目录,使用该rmdir命令并--在要删除的第一个目录的名称前单独写一个单词。如果--尚未通过(这适用于您尝试过的命令以及rmdir),则以 开头的单词-将被解释为控制命令行为方式的选项集合,而不是作为命令操作的文件名。
您必须根据您拥有的目录名称编写命令。由于在 Stack Exchange 可视化编辑器中格式化文件名时可能出现错误,在这种情况下,我不建议直接从这个答案中复制。但是,作为一个示例,我希望您根据需要进行修改,如果您有一个名称为的目录:
-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0??z1A62Sh25BS0pYZEby6J??DVvtMZavFTCUgQUpjuJU??CZ0pKspQLd40O3Zc9rzg??GRFcxNBKOgr7KnVwZw_A??4kkx4R9zq1oON8aP4y00??EY0AuIJYRdCs9v9oYNKr??FasQoMXwuLiw5lh0Z8J6??Jh8u8pjDNnP31p0oBYsj??TQTPUE1MXVqgAuWNjrht??EFuouXKR
Run Code Online (Sandbox Code Playgroud)
它是空的,并且您在其父目录中(您可以使用cd它去那里pwd检查您当前所在的目录),然后您可以像这样删除它:
rmdir -- -9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0??z1A62Sh25BS0pYZEby6J??DVvtMZavFTCUgQUpjuJU??CZ0pKspQLd40O3Zc9rzg??GRFcxNBKOgr7KnVwZw_A??4kkx4R9zq1oON8aP4y00??EY0AuIJYRdCs9v9oYNKr??FasQoMXwuLiw5lh0Z8J6??Jh8u8pjDNnP31p0oBYsj??TQTPUE1MXVqgAuWNjrht??EFuouXKR
Run Code Online (Sandbox Code Playgroud)
或者,如果它归 root 所有,或者您无权删除它:
sudo rmdir -- -9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0??z1A62Sh25BS0pYZEby6J??DVvtMZavFTCUgQUpjuJU??CZ0pKspQLd40O3Zc9rzg??GRFcxNBKOgr7KnVwZw_A??4kkx4R9zq1oON8aP4y00??EY0AuIJYRdCs9v9oYNKr??FasQoMXwuLiw5lh0Z8J6??Jh8u8pjDNnP31p0oBYsj??TQTPUE1MXVqgAuWNjrht??EFuouXKR
Run Code Online (Sandbox Code Playgroud)
请注意,--参数后面有一个空格。这很重要。
或者您可以使用目录的完整路径。那么你在运行命令时就不必担心你在哪个目录中,并且--是可选的。例如(基于您在评论中显示的内容):
rmdir /media/me/702E29F142F/-9tDCcQrfg8u8e.AlOYZ7DX0q-ZRR77j9q8Gq0??z1A62Sh25BS0pYZEby6J??DVvtMZavFTCUgQUpjuJU??CZ0pKspQLd40O3Zc9rzg??GRFcxNBKOgr7KnVwZw_A??4kkx4R9zq1oON8aP4y00??EY0AuIJYRdCs9v9oYNKr??FasQoMXwuLiw5lh0Z8J6??Jh8u8pjDNnP31p0oBYsj??TQTPUE1MXVqgAuWNjrht??EFuouXKR
Run Code Online (Sandbox Code Playgroud)
(或使用sudo rmdir,如上。)
如果这没有帮助并且您继续收到相同的No such file or directory消息,那么问题在于您没有成功命名目录。据推测,他们的名字包含不寻常的字符。
根据您所展示的情况,这种情况并不明显,但这是一个常见问题,因此我将其包括在内以防万一。如果您的目录名称包含空格或其他由 shell 特殊处理的字符,例如换行符*、 或$,那么您应该将名称括在单引号中。只要名称本身不包含任何单引号,这就足够了。
更一般地说,如果您曾经cd访问包含这些目录的目录,您应该能够通过运行来获取该目录中的条目列表(包括您想要删除的子目录):
ls -1b
Run Code Online (Sandbox Code Playgroud)
这ls在两个有用的方面不同于普通命令:
-b标志会导致路径打印转义序列,可以粘贴在$' '. 首字母$和开头之间不应出现空格'字符。-1标志使ls每行列出一个条目。这可以帮助减少关于一个文件名的结束位置和下一个文件名的开始位置的混淆。这应该使您能够编写删除、重命名等这些目录的命令。如果它们确实是空的,则可以使用该rmdir命令将其删除。您可能需要以 root 身份运行此命令,您可以使用sudo.
这是您可能运行的命令的故意过度简化的说明。假设ls -1b列出:
abc\ def
ghi\njkl
pqr\b\b\bstuv
$$$$$$$\b\b\b$$$
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,有一个空格。在第二种情况下有一个换行符(换行符)。在第三种情况下,有三个退格字符。在第四种情况下,两者都有$退格字符又有退格字符。
要删除这些目录,您可以使用:
rmdir -- $'abc\ def'
rmdir -- $'ghi\njkl'
rmdir -- $'pqr\b\b\bstuv'
rmdir -- $'$$$$$$$\b\b\b$$$'
Run Code Online (Sandbox Code Playgroud)
如上所述,您可能需要sudo.
rmdir 可以采用多个文件名,但如果您每次删除使用一个命令,那么您可能更容易理解收到的任何错误消息(如果有)。
在这些具体的例子,目录名没下手-和--标志是没有必要的。但这并没有造成任何伤害。
$' ' 与普通 ' '与引用 with 不同' ',引用 with$' '会导致反斜杠转义,如\nand\b被扩展。
'ghi\njkl' 标识名称为字面意思的文件:
ghi\njkl相反,$'ghi\njkl'标识名称为的文件:
ghi
jkl使用一些图形文件浏览器(例如 Nautilus,即“文件”)和一些终端(例如 GNOME 终端),有一种更简单的方法可以在您编写的终端命令中获得文件的可用绝对路径。
这适用于大多数安装了图形用户界面的 Ubuntu 系统,但当您通过 SSH 远程登录时,它几乎永远不会工作。
您可以从文件浏览器窗口拖动文件夹拖到终端窗口中,以将其完整路径粘贴到终端中。将鼠标悬停在终端窗口上,松开按钮。
为了使这有用,最好的方法是编写要首先运行的命令。例如,写下这个并在最后包含一个空格但不要按下Enter:
rmdir --
Run Code Online (Sandbox Code Playgroud)
然后将文件夹从文件浏览器窗口拖到终端窗口中。如果您的文件浏览器和终端模拟器支持它,您应该会看到粘贴的路径,并自动提供\或'基于引用。然后您可以按Enter运行该命令。即使命令不成功,这通常会给出比No such file or directory更有用的错误消息。
| 归档时间: |
|
| 查看次数: |
4141 次 |
| 最近记录: |