Linux下删除文件的命令是rm,使用起来非常简单

rm test.txt

像这样就删除了test.txt这个文件。说起来简单,实际在删除文件夹(文件)的操作中常常会遇到很多小问题,下面我逐一给出解决方案:

问题1:删除文件夹时失败,错误提示:

mkdir test

rm test

rm: cannot remove `test': Is a directory

上面先新建了一个文件夹test,再尝试删除它,结果遇到报错。

解决:rm命令的作用是删除文件,真正删除文件夹的其实应该是rmdir命令。但是我们习以为常的用rm来删除,就会看到这个报错了。解决办法是给rm加上-r参数:

rm -r test

问题2:删除文件不断让确认,提示:

#t文件夹中有1、2、3、4四个文件

rm -r t

rm: descend into directory `t'? y

rm: remove regular empty file `t/4'? y

rm: remove regular empty file `t/1'? y

rm: remove regular empty file `t/2'? y

rm: remove regular empty file `t/3'? y

rm: remove directory `t'? y

4个文件还可以逐个按y确认删除,如果数量再多就没有办法做到了。

解决:出现这种情况的原因是CentOS等Linux发行版基于安全方面的考虑,对rm做了一个alias别名处理,执行这个命令可以看到:

alias

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'                  #

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

-i的意思是删除每个文件前确认(prompt before every removal)

问题找到了,如何解决呢?有两个办法:

办法1:加上-f参数,-f的意思是不用确认强行删除(ignore nonexistent files, never prompt)

rm -rf t

办法2:绕过在命令前加反斜线的方式绕过系统alias

\rm -r t

问题3:删除文件失败,提示权限不够

rm /root/a

rm: cannot remove `/root/a': Permission denied

这种情况就比较麻烦,不是一句话两句话能搞清楚的了。删除一个文件,实际上是在它所在的文件夹里执行命令,所以当前登录用户要有这个文件夹的执行权限。

解决:这种情况通常用sudo临时获得root权限(当然了前提是有权sudo)。如果既没有sudo权限,又有删除文件的需求,那说明这台服务器的权限分配不合理,只能找系统管理员解决。

问题4:删除超大文件夹没有响应(慢)

有一个文件夹超大上百GB,里面的文件都是海量小文件(<10KB),通常如果用文件做缓存就会出现这种情况。如果因为某些原因要删除这个文件夹,那可麻烦了,因为删除超大文件非常慢:执行一个rm操作需要几十分钟是常有的事。

而执行的过程中如果终端窗口关掉,那这个命令就执行失败了,在网络不好的时候重试多少次都无法完成。

解决:nohup命令可以让服务器在后台执行命令,不必开着终端窗口,以删除文件夹为例:

nohup rm a & [1] 28898 nohup: ignoring input and appending output to `nohup.out'

这里的28898是进程ID,记下这个数字,通过下面的命令了解进程状态:

top -p 28898

如果对应的进程已经没有了,就说明已经执行完了(或者出错了)。程序的回显会写入到nohup.out文件中,对rm命令来说通常没有回显。

问题5:删除超大文件夹报错

bash: /bin/rm: Argument list too long

这种情况比问题4还严重一些,问题4是慢但最终也能删除完,而出现这个报错就说明删除执行不下去了。

解决:把删除一个文件夹的操作拆分成逐一删除N多个小文件,具体的命令是:

ls | xargs -n 10 rm -fr

还可以用find命令的-exec参数,原理大同小异。

问题6:如何最快速度简单粗暴的删除一个超大文件夹

上面的方法提供了更高的灵活度,如果只删除特定文件则稍加修改就可以实现。但如果目的明确就是要彻底删除一个文件夹的所有内容,而且服务器上有rsync命令,还有更快的方式:

which rsync /usr/bin/rsync #如果是上面这个结果,这就说明已经有了 /usr/bin/which: no rsync in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)#如果是上面这个结果,就说明没有rsync,就不能用这个办法了

如果rsync命令已经安装,而我们要清空的是/home/test/big/这个目录,用这个命令是最快的:

mkdir tmp_del && rsync -a --delete tmp_del/ 这里是要清空的文件夹/ && rmdir tmp_del

这个命令的原理和上面的所有命令都不一样,它直接用另一个空文件夹来替换掉目标文件夹,速度最快,如果服务器装有rsync命令的话,这是删除大文件夹的最佳选择。

linux删除目录不弹出y,Linux下rm删除文件(文件夹)失败的解决相关推荐

  1. linux中rm删除的文件是否可以恢复,Linux下用rm删除的文件的恢复方法

    Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2008-08/14744.htm lin ...

  2. linux误删 bin目录,记linux下rm误删bin文件的解决方式

    平常有个坏习惯,删文件为了快点,喜欢用rm xx*,删除一些关键词文件.今天为了删/bin下几个含有mix关键词的文件,使用命令rm mix*.手贱,mix和*之间多了个空格...灾难发生了!bin下 ...

  3. jQuery手机移动端弹出层美化下拉选项特效代码

    jQuery手机移动端弹出层美化下拉选项特效代码 演示地址:http://www.b4a.bid/JS/ 效果如下: 下载地址:https://download.csdn.net/download/d ...

  4. linux rm 不释放_Linux解决rm 删除大文件后 磁盘空间无法释放的问题

    Linux解决rm 删除大文件后 磁盘空间无法释放的问题 在Linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会 ...

  5. ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件...

    原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...

  6. Linux rm 删除指定文件外的其他文件 方法汇总

    一.Linux下删除文件和文件夹常用命令如下: 删除文件: rm file 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除 空文件夹 . 二.删除制定文件(夹)之外的所有文 ...

  7. Microsoft Visusl C++2010运行程序时,调试弹出黑框自动闪退无法看见运行结果的解决方法

    1.Microsoft Visusl C++2010运行程序时,调试弹出黑框自动闪退无法看见运行结果的解决方法 方法在图片下面,耐心的看哟,千万不要错过这莫好的方法呢!!! 一个小案例(输入数据转换度 ...

  8. 计算机内存不能为read,电脑弹出窗口显示该内存不能为read的两种解决方法

    相信大多数朋友都遇到过电脑弹出内存不能为read的提示,这个问题不解决的话,在使用的时候也会非常麻烦.有时可能只是偶尔出现,这是正常的,但过于频繁的出现,就一定要去查查深层次的原因了.内存是主板上的存 ...

  9. AndroidStudio 弹出的Safe Delete 安全删除功能是什么

    这是将AndroidStudio 升级到2.2.3之后出现的一个新的改动,右击删除一个类之后,会弹出一个Safe Delete安全删除的弹框: 我们先来说下者三个选项的意思: ①:Safe delet ...

最新文章

  1. 从BloomFilter到Counter BloomFilter
  2. 吴甘沙:天外飞“厕”、红绿灯消失,未来无人驾驶将被重新定义 | AI ProCon 2019
  3. GB编码与UTF8编码的转换【转载】
  4. ReadyFor4GB破解win7支持4G内存恢复到原系统
  5. UA OPTI512R 傅立叶光学导论23 透镜成像系统的物理光学模型
  6. 02- 流行歌曲 最新热门
  7. MySQL 8.0 新特性:引人注目的哈希连接(Hash Join)
  8. Mayor's posters POJ - 2528 (离散化+线段树)
  9. javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Dao层
  10. LeetCode MySQL 1412. 查找成绩处于中游的学生
  11. jsonobject json对象里面_「jsonobject」用JSONObject解析和处理json数据 - seo实验室
  12. textarea 文本框 实现右下角展现 动态字数
  13. innodb_flush_log_at_trx_commit和sync_binlog参数详解
  14. 图论专题考试2 爆零祭
  15. MariaDB安装教程
  16. IP (网络之间互连的协议)
  17. Android计步器获取手机步数
  18. IOS 多线程之信号量
  19. 算法小结 之 蛮力法
  20. 有苦有乐的算法 --- 使用队列结构实现栈结构

热门文章

  1. 微信小程序[渲染层错误] TypeError Cannot read property ‘replace‘ of undefined 【解决办法】
  2. 大话数据结构-迪杰斯特拉算法(Dijkstra)和弗洛伊德算法(Floyd)
  3. helm 部署 heapster 组件
  4. 通过AT命令使用4G模块通讯软件设计
  5. python--wave库的使用
  6. 硅光应用逐步拓展 数据中心等应用先后发酵
  7. python 商城api编写_Python实战-编写Web App-Day8-编写API
  8. php会员签到送积分程序,PHP用户连续签到赠送额外积分
  9. 适合新手的python练习1
  10. linux 查找 文件夹内 函数