linux删除文件_Linux中删除特殊名称文件的多种方式

今日分享:我们在肉体的疾病方面花了不少钱,精神的病害方面却没有花什么,现在已经到了时候,我们应该有不平凡的学校。--《瓦尔登湖》

前言

我们都知道,在linux删除一个文件可以使用rm命令,但是有一些特殊名称的文件使用普通的rm方式却没法删除,本文介绍linux中删除特殊名称文件的多种方式。

linux文件命名规则

在介绍之前,简单说明一下linux中文件命名规则。文件或目录名由除“/”和空字符“\0”之外的任意ASCII字符序列组成。当然很多操作系统允许更多类型的字符组成文件名。但对于我们来说,不建议使用一些特殊字符来命名文件。不幸的是,我们可能无意中创建了一些特殊名称的文件,或者由程序意外的创建了一些由特殊字符组成的文件,这个时候,要删除它们,似乎没有想象中的那么简单。

删除时带上路径

假设有一个名为-static文件,我们使用普通方式将它删除:

$

非常可惜,这种方式提示出错,并不能成功地删除-static文件。这是为什么?我们知道在linux中,通常以-开头,后面跟一些字符,作为一个命令的选项,而不巧的,-static就被rm命令认为是一个参数选项,更不幸的是,实际上并没有该选项,因此最终提示invalid option -- 's',导致-static文件无法删除。

那么有没有什么办法删除呢?我们注意到,除了提示非法选项外,还让我们尝试rm ./-static,是否可以呢?我们试一下:

$

最终发现,我们将-static文件成功删除了。因此得到我们的第一种方式,删除文件时带上路径

删除时使用 --

前面除了提示让我们使用rm ./-static之外,还让我们使用rm --help获取更多信息,那么我们就看一下:

$

内容较多,但是可以注意到上面的内容,对于以-开头的文件,提供了两种删除方式,第二种是前面提到的,而第二种,是在删除的文件前面再加--:

$

我们发现这种方式也是可以删除以-开头的文件。

删除时用引号引起来

对于特殊字符,如<>!*等组成的文件如何删除呢?例如:

$

对于这种类型的文件,我们需要用引号将文件名包含起来:

$

这样就可以删除掉了,但是这种方式并不能针对所有该类型的文件,例如,文件名为!*的文件就不能通过这样的方式删除,因为!*是有其他含义的,具体可参看《linux中"!"的惊叹用法,你知道吗?》

增加转义字符删除文件

既然!*无法通过加引号的方式删除,那还有什么办法吗?有!删除时,增加转义字符:

$

这样便可以删除。在linux中,很多字符有着特殊的含义,因此当你需要把它当普通字符使用时,就需要在前面加上\转义字符,这和C语言中的转义有点类似。再举个例子,要删除以空格开头的abc文件,可以使用下面的方式:

$

即可成功删除。

按照i节点号删除

很多时候,文件名压根没法输入,因为它们都是一堆乱码。因此也完全无法通过前面介绍的方法进行删除,那还有办法吗?有!通过查找文件的i节点,按照i节点进行删除。
例如:

$

关于find命令用法,可参考《find命令高级用法》。这种通过i节点号进行删除的方式适用于前面所提到的任何类型文件。

这里扩展说几句。在操作系统中,它是如何识别一个文件的呢?它并不是通过文件名,而是通过一个iNode号,即i节点号来识别不同的文件,文件名不过是这个文件其中的一个属性而已。

使用通配符删除

不多解释:

$ rm *.pdf

但是这种方式可能存在误删,因为只要文件名结尾为.pdf就会被删除,因此根据实际情况慎重使用。

总结

删除特殊文件名称的方法有很多,总结如下:

  • 删除时带上路径

  • 删除时使用 --

  • 删除时用引号引起来

  • 使用转义字符辅助删除

  • 按照i节点号删除

  • 使用通配符删除

不同类型文件可选择使用上面所提较方便的方式进行删除。

b256d99a6307249ac246707608cdb67d.png

相关精彩推荐

6f0adcc3716f773c14deb0bc9b5d0000.png

GDB调试指南-启动调试

linux中"!"的惊叹用法,你知道吗?

find命令高级用法

Linux中的文件查找技巧

20fe56238f68317c9c201eb44cd78c80.png

关注公众号【编程珠玑】,第一时间获取更多原创技术文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中的lambda和apply结合使用

1、 lambda lambda原型为&#xff1a;lambda 参数:操作(参数) lambda函数也叫匿名函数&#xff0c;即没有具体名称的函数&#xff0c;它允许快速定义单行函数&#xff0c;可以用在任何需要函数的地方。这区别于def定义的函数。 lambda与def的区别&#xff1a; 1&#xff09;…

软件开发报价模板_定制开发小程序和行业通用(模板)小程序的利弊分析

最近很多掌客多客户来咨询&#xff0c;纠结到底是定制开发小程序还是买个模板通用小程序好&#xff0c;其实在回答这个问题之前&#xff0c;我们先要搞明白什么是定制开发小程序&#xff0c;什么是模板通用小程序&#xff0c;最后再问问自己的搞小程序的目的是什么&#xff1f;…

有十五个数按由大到小顺序存放在一个数组中_「图形化编程」前导知识-数组(一)...

今天我们来学习一个新的概念-数组。这节课将通过一个小程序讲解数组的基本概念-数组的长度和下标定义数组指的是有序元素的集合&#xff0c;数组中的每个元素具有相同的类型&#xff0c;按照顺序排列的形式组织在一起。我们可以把数组想象为一个抽屉柜&#xff0c;每个抽屉只能…

octave错误-error: ‘squareThisNumber‘ undefined near line 1 column 1

.m文件名称也应为大写&#xff1a;squareThisNumber.m 问题2&#xff1a; parse error near line 1 of file C:\Users\asus\squareThisNumber.m syntax error >>> {\rtf1\ansi\ansicpg936\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset134 \cb\ce\cc\e5;}} 解决方案…

python矩阵中找满足条件的元素_Python 找到列表中满足某些条件的元素方法

Python 找到列表中满足某些条件的元素方法 更新时间&#xff1a;2018年06月26日 11:20:17 作者&#xff1a;CS_network 今天小编就为大家分享一篇Python 找到列表中满足某些条件的元素方法&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。一起跟随小编过来看看…

计算机启动过程-阮一峰

从打开电源到开始操作&#xff0c;计算机的启动是一个非常复杂的过程。 我一直搞不清楚&#xff0c;这个过程到底是怎么回事&#xff0c;只看见屏幕快速滚动各种提示...... 这几天&#xff0c;我查了一些资料&#xff0c;试图搞懂它。下面就是我整理的笔记。 零、boot的含义 …

python神经网络实例_Python编程实现的简单神经网络算法示例

本文实例讲述了Python编程实现的简单神经网络算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; python实现二层神经网络 包括输入层和输出层 # -*- coding:utf-8 -*- #! python2 import numpy as np #sigmoid function def nonlin(x, deriv False): if(deriv Tru…

由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。

问题描述&#xff1a; 由于被认为是客户端对错误&#xff08;例如&#xff1a;畸形的请求语法、无效的请求信息帧或者虚拟的请求路由&#xff09;&#xff0c;服务器无法或不会处理当前请求。 在实现向数据库中添加记录时&#xff0c;请求发送无效&#xff0c;参数也未传递到控…

怎么通过id渲染页面_完全理解Vue的渲染watcher、computed和user watcher

作者&#xff1a;Naicehttps://segmentfault.com/a/1190000023196603这篇文章将带大家全面理解vue的watcher、computed和user watcher&#xff0c;其实computed和user watcher都是基于Watcher来实现的&#xff0c;我们通过一个一个功能点去敲代码&#xff0c;让大家全面理解其中…

VS2015启动调试程序变慢

问题描述## 标题 vs2015编译速度很快&#xff0c;运行时不停显示加载xxx.dll动态库&#xff0c;加载很慢 解决方案## 标题 打开vs2015,依次点击工具-》选项-》调试-》符号&#xff0c;点击勾选去掉Microsoft符号服务器&#xff0c;清空符号缓存完毕 转载自VS2015启动调试程序变…

根可达算法的根_我的JVM(六):GC的基础概念以及GC算法

一、概述垃圾收集Garbage Collection通常被称为GC&#xff0c;但是GC一般也指Garbage Collecting(垃圾回收这个动作)或Garbage Collector(垃圾回收器)&#xff0c;这些都是是JVM知识体系中非常重要的知识&#xff0c;也是程序员必须要掌握的技能&#xff0c;本文将详细讲述Java…

docker 删除包含关键字的镜像_30分钟带你轻松掌握Docker原理

前言Docker是什么&#xff1f;Docker是Go语言开发实现的容器。2013年发布至今&#xff0c;备受推崇。相关文档、学习资料十分详尽。近期有docker相关项目&#xff0c;得重新学习一下。博客以笔记为什么要使用 Docker&#xff1f;Docker 容器的启动在秒级Docker 对系统资源利用率…

pads中如何设置等长_如何在SQL Server中设置扩展,监控系统性能

dbForge Studio for SQL Server为有效的探索、分析SQL Server数据库中的大型数据集提供全面的解决方案&#xff0c;并设计各种报表以帮助作出合理的决策。dbForge Studio for SQL Server​www.evget.com扩展事件是一种有用且方便的解决方案&#xff0c;旨在监视您的系统性能。它…

iar stm32_STM32延时函数的四种方法

关注、星标公众号&#xff0c;不错过精彩内容单片机编程过程中经常用到延时函数&#xff0c;最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms()。本文基于STM32F207介绍4种不同方式实现的延时函数。普通延时这种延时方式应该是大家在51单片机时候&#xff0c;接触最早的延…

使用pm2启动node文件_PM2 是什么

目录 pm2是什么特点示例说明配置文件常用命令背景 由于需要在容器云新增一个测试环境&#xff0c;改了代码相关的配置后&#xff0c;进行部署。发现服务一直启动不了。在和运维一起排查问题&#xff0c;他看到pm2的一些信息&#xff0c; 问我pm2是不是阻塞了&#xff0c;并不是…

CP/M世界上第一个微机操作系统

CP/M世界上第一个微机操作系统 微软宣布2014年4月8日将不再对Windows XP系统进行更新&#xff0c;宣告这个存活了13年的史上寿命最长的微机操作系统基本上寿终正寝。很多人都知道这是个脱胎于DOS的系统&#xff0c;也潜意识中认为DOS是微机操作系统的鼻祖。不过&#xff0c;这大…

安卓 usb音量调节_戴尔推出面向Teams和Zoom视频通话的USB-C免提适配器

COVID-19 大流行期间&#xff0c;许多企业将会议安排在了线上举办。为方便通过 Microsoft Teams 和 Zoom 之类云视讯平台进行沟通的笔记本电脑用户&#xff0c;戴尔特地推出了新款 USB-C 音频适配器。作为一款两用配件&#xff0c;MH3021P 不仅可以作为有线通话的免提适配器(集…

word表格美化技巧:如何统一改变表格的样式

在Word中插入的表格默认都是黑边白底&#xff0c;看上去非常的单调。比如这样&#xff1a; 很多小伙伴都是在新建表格并且填完数据之后&#xff0c;应用表格样式&#xff0c;来提升档次&#xff0c;如下&#xff1a; 但是&#xff0c;每次新建表格后再选择应用【表格样式】&…

banner信息是什么_我的设计成长笔记—第10篇(banner)

Banner2019年5月9日这里是我的设计成长笔记—————————————————Banner为什么单独拿出来聊因为我有差不多一年的时间都在做这个在我的成长过程中&#xff0c;banner是过渡从平面/美工到UI设计的一个过程。在这个过程中&#xff0c;我对设计的理解分成了三个部分第…

后台原理_电气控制原理动图22张,超赞!

今天从低压电器、电动机及控制线路、传感器及控制原理三部分来分享22张超赞的原理动图。低压电器部分1按钮开关2闸刀开关3行程开关4交流接触器5热继电器6时间继电器7速度继电器电动机及控制线路1异步电动机2直流电动机3步进电动机4永磁电机5正反转控制6自动往返控制7顺序控制8多…