每当我输入类似于sudo apt-get install或类似的命令时,我都会收到此类错误:
$ sudo su
# exit
exit
rm: cannot remove `/run/user/root/gvfs': Is a directory
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我试过跑步
locate *.orig | xargs rm
Run Code Online (Sandbox Code Playgroud)
但它说 No such file or directory
我已经看到了这样做的方法,find但是 locate 返回对象的完整路径,所以它应该是可能的
我的顶级目录是data. data包括几个目录,这些目录有子目录。我需要删除data/除某些目录中的几个文件之外的所有文件和目录。
例如,数据包括目录100和101. 我只是想保持a.txt与b.txt在文件100/和c.txt和d.txt文件101/同时去除所有其他文件和目录100和101。
例子:
.
??? 100
? ??? a.txt
? ??? b.txt
? ??? c.txt
? ??? d.txt
??? 101
??? a.txt
??? b.txt
??? c.txt
??? d.txt
Run Code Online (Sandbox Code Playgroud)
我使用rm -rf !(a.txt|b.txt)命令,但我无法自动为每个目录应用此命令。
我从一本书中读到,该命令rm删除的inode是文件而不是文件。这意味着如果我用rm命令删除,则无法恢复。
我对 Ubuntu 环境很陌生。现在我的疑问是,Del密钥是如何工作的?inode就我而言,它并没有删除,因为我可以从我的Trash文件夹中恢复它。所以我说Del 键是mv对Trash文件夹执行命令而inode保持不变的说法是否正确?还是我在这里遗漏了什么?
我有一个像
/usr/lib/i386-linux-gnu/libavfilter.so
/usr/lib/i386-linux-gnu/libavfilter.so.3
/usr/lib/i386-linux-gnu/libavfilter.so.3.42.103
/usr/lib/i386-linux-gnu/i686/cmov/libavfilter.so
/usr/lib/i386-linux-gnu/i686/cmov/libavfilter.so.3
/usr/lib/i386-linux-gnu/i686/cmov/libavfilter.so.3.42.103
/usr/local/lib/libavfilter.so
/usr/local/lib/libavfilter.so.4
/usr/local/lib/libavfilter.so.4.4.100
Run Code Online (Sandbox Code Playgroud)
我怎样才能完全删除这些文件,而不是像这样一一删除它们
rm /usr/lib/i386-linux-gnu/libavfilter.so
rm /usr/lib/i386-linux-gnu/libavfilter.so.3
rm /usr/lib/i386-linux-gnu/libavfilter.so.3.42.103
rm /usr/lib/i386-linux-gnu/i686/cmov/libavfilter.so
rm /usr/lib/i386-linux-gnu/i686/cmov/libavfilter.so.3
rm /usr/lib/i386-linux-gnu/i686/cmov/libavfilter.so.3.42.103
rm /usr/local/lib/libavfilter.so
rm /usr/local/lib/libavfilter.so.4
rm /usr/local/lib/libavfilter.so.4.4.100
Run Code Online (Sandbox Code Playgroud)
?
警告! 不要在没有首先检查输出的情况下应用以下命令
我写了一个脚本,删除文件夹中除最后两个文件之外的所有文件:
#!/bin/bash
ls -1 --quoting-style=shell-always /path/to/some/folder \
| head -n -2 \
| xargs printf -- "'/path/to/some/folder/%s'\n" \
| xargs sudo rm -rf
Run Code Online (Sandbox Code Playgroud)
此脚本将每天作为 cron 作业执行。
理由如下:
使用获取所有文件的列表ls -1(这样我每行得到一个文件);
使用head -n -2;从列表中删除最后两个
由于ls打印相对路径,所以使用xargs printfthing 来预先添加文件夹路径并使其成为绝对路径;
将它们发送到sudo rm -rf使用xargs.
每个人都可以访问此文件夹,因此任何人都可以创建和删除此文件夹中的任何文件。
问题是: sudo rm -rf很可怕。xargs sudo rm -rf非常可怕。
我想确保没有人可以通过创建要删除的巧妙文件(意外或故意)来损坏其他文件夹/系统。我不知道,一些聪明的东西,比如:
file with / spaces.txt
这可能会导致一个超级可怕的sudo rm -rf /。
编辑:我的错误,文件名不能包含/,所以这个特定的问题不会发生,但关于是否存在其他风险的问题仍然存在。
这就是我使用的原因--quoting-style=shell-always,这应该可以防止任何带有空格的文件的技巧。但现在我想知道是否有人可以更聪明地使用文件名中的空格和 …
即使某些文件位于他/她的主文件夹下,如何才能使用户无法删除某些文件?
我不小心rm -rf /*在我的 Ubuntu 10.10 上运行并迅速取消了命令。我不是 root 也没有使用,sudo但我的很多文件都被删除了。系统反应迟钝,我不知道如何修复它。例如,我重新安装了 Firefox,它解决了许多 Firefox 问题,但右键单击非常缓慢。Deluge 不断将 CPU 使用率(1 个核心)提高到 100%。快门在响应能力方面也有点奇怪。
我能做些什么来修复一切吗?喜欢重新安装每个已安装的软件包和 Ubuntu 文件?
最近我看到了一个缓存问题。问题来自散列损坏,可以通过以下方式解决
sudo rm -rf /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)
和
sudo rm /var/lib/apt/lists/* -vf
Run Code Online (Sandbox Code Playgroud)
但我不明白这两者之间的区别。有人可以解释一下区别吗?
我错误地ls从/bin文件夹中删除了可执行文件。
我可以恢复它或通过终端安装它吗?