Linux之删除带有空格的文件(而不是目录)

大家平时工作中对不带空格的文件接触较多。这样一来删除操作也是比较简单的。但是有时我们会接触带有空格的文件。对于这种文件我们应该如何删除呢?

首先我们演示一下find命令结合xargs命令删除不带空格的文件

[root@ELK-chaofeng test]# touch 1.txt 2.txt
[root@ELK-chaofeng test]# ls
1.txt  2.txt
[root@ELK-chaofeng test]# find . -type f | xargs
./1.txt ./2.txt
[root@ELK-chaofeng test]# find . -type f | xargs rm -rf
[root@ELK-chaofeng test]# ls
[root@ELK-chaofeng test]#

接下来我们演示删除带有空格的文件

[root@ELK-chaofeng test]# touch 1.txt 2.txt ‘1 2.txt‘
[root@ELK-chaofeng test]# ls
1 2.txt  1.txt  2.txt
[root@ELK-chaofeng test]# ll
total 0
-rw-r--r-- 1 root root 0 Feb 14 12:24 1 2.txt
-rw-r--r-- 1 root root 0 Feb 14 12:24 1.txt
-rw-r--r-- 1 root root 0 Feb 14 12:24 2.txt
[root@ELK-chaofeng test]# find . -type f -print0 | xargs -0 rm -rf
[root@ELK-chaofeng test]# ls

上面的参数-print0,于默认的-print相比,输出的序列不是以空格分隔,而是以null字符分隔。而xargs也有一个参数-0,可以接受以null而非空格间隔的输入流。

原文地址:https://www.cnblogs.com/FengGeBlog/p/10373973.html

时间: 2024-08-01 10:17:24

Linux之删除带有空格的文件(而不是目录)的相关文章

Linux之特殊的环境变量IFS以及如何删除带有空格的目录

1.IFS是什么? Linux下有一个特殊的环境变量叫做IFS,叫做内部字段分隔符(internal field separator).IFS环境变量定义了bash shell用户字段分隔符的一系列字符.默认情况下,bash shell会将空格当做字段分隔符.我这里的系统是Centos7系统. 但是往往我们不能仅仅以空格符来作为字段分隔符,有时候我们需要以换行符设置为分隔符. 演示如下: 现在我创建了四个目录,其中一个目录带有空格.现在我想把一下子他们统统都删除掉. [root@ELK-chao

linux中批量删除带空格的文件

两种批量删除带空格文件的方式: 第一种用find找到需要删除的文件,-print0指将空格替换成Null;而xargs中的-0参数又将null转换成空格 find . -name "xfsf*" -print0 | xargs -0 rm -rf 第二种用ls查找需要删除的文件,xargs中的-i参数指将每一项的名称替换成{} ls . |grep -i "xxx*" | xargs -i rm -rf {} 单独删除时用\将空格转义 原文地址:https://ww

Linux下删除乱码或特殊字符文件

今天遇到一个问题,一个文件名是“-MXV9.log”,直接用rm删除的时候就报错,如下: [localhost]rm -MXV9.log rm: illegal option -- M rm: illegal option -- X rm: illegal option -- V rm: illegal option -- 9 rm: illegal option -- . rm: illegal option -- l rm: illegal option -- o rm: illegal o

如何用Linux 终端指令打开带有空格或特殊符号的目录

在Linux下使用终端指定打开文件夹,提示目录名称中包含语法错误,此时可以有两个选择:1.按照Linux推荐的文件命名规范,对文件夹名进行修改:2.使用转义符 \:3.成对使用双引号 "": Linux文件命名规范简介 Linux系统区分英文字符的大小写.命名目录和命名文件的规则是相同的.除非有特别的原因否则用户创建的文件和目录名要使用小写字符.大多数的Linux命令也使用小写字符.Linux系统下的文件名长度最多可到256个字符.通常情况下,文件名的字符包括:字母.数字."

Linux批量删除指定后缀的文件

刚才遇到一个问题:从本地文件系统上传一个文件夹至HDFS作为Hadoop程序的输入数据,但是程序报错,原因是Ubuntu针对每个.txt文件生成了.txt~备份文件,所以我要把这些备份文件批量删除然后再上传 进入文件夹所在目录,然后执行命令: [email protected]:/usr/local/hadoop/movieinput$ find . -name '*.txt~' -type f -print -exec rm -rf {} \;

鸟哥的Linux私房菜(笔记)-文件权限与目录配置

第一部分 Linux 简单命令操作 一.基础命令 1.显示日期与时间:date; 2.显示日历:cal 3.简单好用计算器:bc 直接输入数字与预算符,按entry键运算, 输入quit离开bc界面 二.重要的热键 1.它具有命令补全与文件补齐的功能:Tab eg: ca[Tab][Tab] [Tab] 接在一串命令的第一个命令的后面,则为"命令补全" [Tab] 接在一串命令的第二个命令的后面,则为"文件补全" 2.中断目前程序的功能键:[Ctrl]-c 3.代表

linux下带有空格的文件怎么删除

如:hello world文件 第一种方式 先用 ls -i 得到 hello world 的inod(就是最前面的数字)假设这个数字是123,然后find . -inum 123 -exec rm {} \ 第二种方式 用\屏蔽,比如 rm -fr hello\ world 原文地址:https://www.cnblogs.com/sea-stream/p/10209288.html

Linux 删除带有特殊字符的文件

首先 做好备份, 脚本语句在测试环境下 测试一遍.. 通过文件的inode号删除文件 先用ls -i 找出要删除文件的inode 号 ls -i |grep xxxxxx|awk '{print $2}'|xargs -i rm -f {} xxxxxx为文件的 inode 号 通过文件大小删除文件 1.删除当前目录以及所有子目录下的文件大小为零的文件 find ./ -size 0 -exec rm {} \; 2.删除当前目录下文件大小为零的文件(子目录不删除) #/bin/bash for

rm 删除带空格的文件或者目录

1. 信息来源 from man rm, 绝对真实有效 比较删除一个 windows盘符下的 “Program Files“ 目录, 直接rm Program Files 会直接报错, 需要修改为如下格式: 注意:-- 与 "Program Files" 之间有一个空格. rm -rf -- "Program Files"