shell 编程基础——删除文件而不删除文件夹
最好的学习方法,莫过于从实践中学习。
首先需要区分文件和文件夹,需要使用 find 命令加 -type f 的参数,找出文件下下的所有文件。其次再通过rm -rf 的命令删除文件。我首先想到的是这样子的
find -type f | rm -rf
rm: missing operand
Try 'rm --help' for more information.
目录下是有文件的,结果却报 rm 命令没有加operand ;查阅资料后发现rm 命令不支持管道。于是我想着把find 出来的文件用变量保存,再通过rm删除。第一种方法命令如下。
FIHSER155:test $ a=`find -type f` ; rm -rf $a
FIHSER155:test $ find -type f
FIHSER155:test $
目的达成了。注意** `` ** 这个符号是反单引号,键盘符号1的左边那个键盘。
; 这个是指第一个命令执行完后不管成功与否再执行后面的指令,就是一组命令列表。类似shell 脚本里面的换行。
其实还有第二种方法,也是比较普遍的方法, 那就是用 xargs 指令,让不支持管道的命令采用类似管道的做法。命令如下:
find -type f | xargs rm -rf
关于xargs 的详细用法可以参考以下网址
xargs详细用法
还有第三种方法:
对find 命令深入了解后发现find 命令的 -exec 参数也能实现这个功能,代码如下:
$ find -type f
./ext4.ext4
./source/keytest.sh
./source/static/static.h
./source/static/static.c
./source/static/main.c
......
$ find -type f -exec rm -rf {} \;
$ find -type f
但是方法一和方法三是有缺陷的,因为 -exec 和变量的方式 是将查找的范围一次性发送到后面的命令当中,当查找到的结果较多会导致命令行参数溢出。因此还是推荐第二种方式。
喜欢博主的麻烦一键三连,谢谢!
shell 编程基础——删除文件而不删除文件夹相关推荐
- Linux Shell编程基础
linux系统下给命令指定别名alias命令用法: 在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名.虽然可以为命令建立"链接"解决长文件名的问题,但 ...
- 【⛔拒绝内卷,学会shell,走遍天下都不怕⛔】shell编程基础
shell编程基础 shell简介 属性 shell是一个命令行解释器,建立了用户和操作系统之间的接口.当我们在命令行输入一个命令后,shell会对命令进行解释,调用相应的程序去执行.shell是一种 ...
- shell编程基础笔记
第一部分shell编程基础 1shell简介 什么是shell 存取权限和安全 shell简单脚本 shell特性 1.1什么是shell shell是核心程序kernel之外的指令解析器,是一个程 ...
- Shell编程基础常用代码1
Shell编程 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Sp ...
- 「Linux」Linux Shell 编程基础入门
Linux Shell 编程基础入门 1. 变量 1.1 变量定义 1.2 使用变量 1.3 引号 1.4 将命令的结果赋值给变量 1.5 位置参数 1.6 特殊变量及其含义 2. 字符串 2.1 字 ...
- android mkdirs 不起作用,Android mkdirs()创建一个零字节文件而不是文件夹
在我的 Android应用程序中,我试图在SD卡上创建以下文件夹: /mnt/sdcard/OSGiComponents/admin/felix-cache/ 这是代码: File cacheDir ...
- shell编程基础(七): 处理文件命令sed与awk
一.sed(以行为单位处理文件) sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑 ...
- _int64_在Linux对应对文件,LInux 编程基础学习笔记 持续ing 文件读写
一.文件读写 1.创建文件: 头文件: 函数:creat(char *path,int mode) mode:S_I(R|W|X)(USR|GRP|OTH) 对不同用户组的不同读写执行 2.打开 ...
- linux shell编程输入输出,Linux shell编程 13标准输入、输出及文件重定向-dps文件怎么打开...
5.6 标准输入.输出和错误 当我们在 s h e l l中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆, s h e l l同时也给出了 ...
- Linux Shell 编程基础详解——吐血整理,墙裂推荐!
第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...
最新文章
- 《LeetCode力扣练习》第6题 C语言版 (做出来就行,别问我效率。。。。)
- android 访问公共文件夹权限_手机应用获取了储存权限后,可以访问你整个文件吗?...
- mingw w64 v8.0.0_使用Visual Studio Code和MinGW编译运行C++代码
- 能熟练掌握和应用计算机基础知识,浙江省大学生计算机基础知识与应用能力等级考试二级(V......
- axios代理跨域 cli4_跨域本质及解决办法
- CentOS 7本地镜像部署NFS服务
- 搜索引擎的那些事(32位MD5算法)
- [Serializable]在C#中的作用——实现.NET对象序列化
- docker配置 nacos_Docker下配置nacos
- r 语言初学者指南_自然语言处理初学者指南
- ISO14443、15693、18000体系分析
- Python之面向对象-类与 类之间的关系
- 得物购买截图生成_iPhone12订单生成器app-iPhone12订单生成器网页app免费版预约 v1.0...
- ACwing 1018 最低通行费
- matplotlib保存图片去除白边
- 过采样算法之SMOTE
- 用PS做一个好看的图案
- 3900x做服务器性能怎么样,【茶茶】AMD YES?AMD R9 3900X测试报告
- VoiceChatter在VS2005上编译方法
- 嵌入式数据库系统Berkeley DB
热门文章
- thinkphp5.1+easywechat4 微信开放平台开发
- IDEA断点调试技巧,多张动图包教包会
- 计算机无法启动打印服务,win10系统打印服务无法启动的设置教程
- Win32学习笔记(25)远程线程
- go unrecognized relocation (0x2a) in section `.text‘问题
- c语言里判断回文数的函数,(C语言)回文数的判断
- Win系统 - 超简单!给硬盘来个简易健康体检吧
- openKylin 0.7.5 更新版本发布,完成 KMRE 适配,并修复 150+ 已知 Bug!
- VMWare 虚拟机系统 ping 不通主机解决方案
- xshell文件传输