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
上一篇:nohup命令执行退出后进程退出


下一篇:研一下学习笔记