Linux ——记一记那恐怖的 rm -f

本文分享了一次误删系统关键文件的经历,包括遇到的问题、解决办法和预防措施。通过实例分析,强调了良好的文件操作策略、定期备份及谨慎使用命令的重要性,以防止数据丢失。

  今天想试试iscsi构建的FTP,本来想用单机的虚拟机,结果发现有诸多问题,只能依赖两台Redhat6了,结果在给第二台配置yum的时候,最悲剧、最悲惨、最壮烈的一幕发生了~~~~

  安装好yum(yum的安装依赖包还真有点多)后,在 /etc/yum.repos.d/  目录中存在三个文件。想想单机无需使用外部的yum源,所以这三个文件就不要了——删之~~~

在这里,我把我的操作过程贴出来:

[root@localhost etc]# vim yum.repos.d/
packagekit-media.repo  redhat.repo            rhel-source.repo
[root@localhost etc]# vim yum.repos.d/redhat.repo 
[root@localhost etc]# rm -f *
rm: cannot remove `abrt': Is a directory
rm: cannot remove `acpi': Is a directory
rm: cannot remove `alsa': Is a directory
rm: cannot remove `alternatives': Is a directory
rm: cannot remove `audisp': Is a directory
rm: cannot remove `audit': Is a directory
rm: cannot remove `avahi': Is a directory
rm: cannot remove `bash_completion.d': Is a directory
rm: cannot remove `blkid': Is a directory
rm: cannot remove `bluetooth': Is a directory
rm: cannot remove `bonobo-activation': Is a directory
rm: cannot remove `chkconfig.d': Is a directory
rm: cannot remove `ConsoleKit': Is a directory
rm: cannot remove `cron.d': Is a directory
rm: cannot remove `cron.daily': Is a directory
rm: cannot remove `cron.hourly': Is a directory
rm: cannot remove `cron.monthly': Is a directory
rm: cannot remove `cron.weekly': Is a directory
rm: cannot remove `dbus-1': Is a directory
rm: cannot remove `default': Is a directory
rm: cannot remove `depmod.d': Is a directory
rm: cannot remove `dhcp': Is a directory
rm: cannot remove `dnsmasq.d': Is a directory
rm: cannot remove `dracut.conf.d': Is a directory
rm: cannot remove `event.d': Is a directory
rm: cannot remove `festival': Is a directory
rm: cannot remove `fonts': Is a directory
rm: cannot remove `gconf': Is a directory
rm: cannot remove `gcrypt': Is a directory
rm: cannot remove `gdm': Is a directory
rm: cannot remove `ghostscript': Is a directory
rm: cannot remove `gnome-vfs-2.0': Is a directory
rm: cannot remove `gnupg': Is a directory
rm: cannot remove `gre.d': Is a directory
rm: cannot remove `gtk-2.0': Is a directory
rm: cannot remove `hal': Is a directory
rm: cannot remove `httpd': Is a directory
rm: cannot remove `init': Is a directory
rm: cannot remove `iproute2': Is a directory
rm: cannot remove `kdump-adv-conf': Is a directory
rm: cannot remove `ld.so.conf.d': Is a directory
rm: cannot remove `libreport': Is a directory
rm: cannot remove `logrotate.d': Is a directory
rm: cannot remove `lvm': Is a directory
rm: cannot remove `makedev.d': Is a directory
rm: cannot remove `modprobe.d': Is a directory
rm: cannot remove `NetworkManager': Is a directory
rm: cannot remove `ntp': Is a directory
rm: cannot remove `obex-data-server': Is a directory
rm: cannot remove `openldap': Is a directory
rm: cannot remove `opt': Is a directory
rm: cannot remove `PackageKit': Is a directory
rm: cannot remove `pam.d': Is a directory
rm: cannot remove `pango': Is a directory
rm: cannot remove `pcmcia': Is a directory
rm: cannot remove `pki': Is a directory
rm: cannot remove `plymouth': Is a directory
rm: cannot remove `pm': Is a directory
rm: cannot remove `polkit-1': Is a directory
rm: cannot remove `popt.d': Is a directory
rm: cannot remove `postfix': Is a directory
rm: cannot remove `ppp': Is a directory
rm: cannot remove `prelink.conf.d': Is a directory
rm: cannot remove `profile.d': Is a directory
rm: cannot remove `pulse': Is a directory
rm: cannot remove `rc.d': Is a directory
rm: cannot remove `rhsm': Is a directory
rm: cannot remove `rpm': Is a directory
rm: cannot remove `rwtab.d': Is a directory
rm: cannot remove `sasl2': Is a directory
rm: cannot remove `security': Is a directory
rm: cannot remove `selinux': Is a directory
rm: cannot remove `setuptool.d': Is a directory
rm: cannot remove `sgml': Is a directory
rm: cannot remove `skel': Is a directory
rm: cannot remove `sound': Is a directory
rm: cannot remove `ssh': Is a directory
rm: cannot remove `ssl': Is a directory
rm: cannot remove `statetab.d': Is a directory
rm: cannot remove `sudoers.d': Is a directory
rm: cannot remove `sysconfig': Is a directory
rm: cannot remove `terminfo': Is a directory
rm: cannot remove `udev': Is a directory
rm: cannot remove `vmware-tools': Is a directory
rm: cannot remove `vsftpd': Is a directory
rm: cannot remove `wpa_supplicant': Is a directory
rm: cannot remove `X11': Is a directory
rm: cannot remove `xdg': Is a directory
rm: cannot remove `xinetd.d': Is a directory
rm: cannot remove `xml': Is a directory
rm: cannot remove `yum': Is a directory
rm: cannot remove `yum.repos.d': Is a directory
[root@localhost etc]# ls
abrt               dracut.conf.d   NetworkManager    sasl2
acpi               event.d         ntp               security
alsa               festival        obex-data-server  selinux
alternatives       fonts           openldap          setuptool.d
audisp             gconf           opt               sgml
audit              gcrypt          PackageKit        skel
avahi              gdm             pam.d             sound
bash_completion.d  ghostscript     pango             ssh
blkid              gnome-vfs-2.0   pcmcia            ssl
bluetooth          gnupg           pki               statetab.d
bonobo-activation  gre.d           plymouth          sudoers.d
chkconfig.d        gtk-2.0         pm                sysconfig
ConsoleKit         hal             polkit-1          terminfo
cron.d             httpd           popt.d            udev
cron.daily         init            postfix           vmware-tools
cron.hourly        iproute2        ppp               vsftpd
cron.monthly       kdump-adv-conf  prelink.conf.d    wpa_supplicant
cron.weekly        ld.so.conf.d    profile.d         X11
dbus-1             libreport       pulse             xdg
default            logrotate.d     rc.d              xinetd.d
depmod.d           lvm             rhsm              xml
dhcp               makedev.d       rpm               yum
dnsmasq.d          modprobe.d      rwtab.d           yum.repos.d

  一看到出现“rm: cannot remove `abrt': Is a directory”就呆了~~~~

  看看那etc目录就剩几个干巴巴的文件夹了,如果要是用   rm -rf *,剩下的就只有那么一个空空的etc了~~

  在网上找了找解决办法,大致也就是数据恢复。一向谨慎的我,居然犯这么低级的错误——应该是昨晚洗头的原因吧~~

  预防措施:

  1、良好的更改文件的策略:更改文件时先进行备份操作——新建一个bak文件甚至新建一个bak文件夹

  2、删除的文件最好能放在一个临时的存储文件夹中,最好找一种类似于放入回收站的程序,并定时清理

  3、不能轻易使用  rm -fr 等命令  ——  三思而后行也~~

转载于:https://www.cnblogs.com/picaso/archive/2012/07/02/2572723.html

### Linux `rm -f` 命令用法及注意事项 `rm` 是 Linux 系统中用于删除文件或目录的命令,而 `-f` 参数表示 **强制删除**,无需用户确认,并且即使文件不存在也不会报错。以下是关于 `rm -f` 的详细说明和注意事项。 #### 1. 基本语法 `rm` 命令的基本语法如下: ```bash rm [选项] 文件... ``` 当使用 `-f` 参数时,其语法为: ```bash rm -f 文件名 ``` #### 2. `-f` 参数的作用 - `-f` 表示 **force**(强制),即在删除文件时不提示用户确认。 - 即使目标文件不存在,命令也不会报错[^2]。 #### 3. 示例代码 以下是一些常见的 `rm -f` 使用示例: ##### 删除单个文件 如果需要强制删除一个文件,可以运行以下命令: ```bash rm -f example.txt ``` 此命令会直接删除 `example.txt` 文件,而不会询问是否确认。 ##### 删除多个文件 可以通过一次命令删除多个文件: ```bash rm -f file1.txt file2.txt file3.txt ``` 上述命令会逐一删除指定的文件,无需任何确认。 ##### 删除匹配模式的文件 可以结合通配符删除符合特定模式的文件: ```bash rm -f *.txt ``` 此命令会删除当前目录下所有以 `.txt` 结尾的文件。 #### 4. 注意事项 - **谨慎使用**:`rm -f` 是一个非常危险的命令,因为它不会提示用户确认删除操作,一旦执行,文件将无法恢复[^3]。 - **路径确认**:在执行删除操作前,请确保目标路径正确无误,避免误删重要数据。 - **备份数据**:建议在执行删除操作之前,先对重要数据进行备份。 - **避免误用**:切勿随意在不熟悉的环境中使用 `rm -f`,尤其是递归删除时(如 `rm -rf /`),这可能会导致系统崩溃[^3]。 #### 5. 常见问题及解决方法 - 如果尝试删除一个只读文件,可以直接使用 `rm -f` 强制删除,无需更改文件权限。 - 如果需要删除一个不存在的文件而不希望出现错误提示,可以使用 `rm -f`,它会在文件不存在时静默处理[^2]。 ```bash # 示例:删除一个不存在的文件 rm -f non_existent_file.txt ``` #### 6. 安全替代方案 为了提高安全性,可以使用交互式删除方式(`-i` 参数): ```bash rm -i example.txt ``` 此命令会在删除前询问用户是否确认。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值