Linux 删除当前文件夹内子文件夹下所有的文件

适用场景:需要删除某个大文件内所有子文件夹下的文件

用 Linux 命令 tree 遍历目标文件夹 test01 下的所有文件
[root@VM-0-15-centos ~]# tree test01/
test01/
|-- ha01.md
|-- ha02.mp4
|-- ha03.txt
|-- my01
|   |-- 1.txt
|   |-- 2.txt
|   |-- 3.txt
|   `-- 4.txt
|-- my02
|   |-- 1.md
|   |-- 2.md
|   |-- 3.md
|   `-- 4.md
`-- my03
    |-- 1.pdf
    |-- 2.pdf
    |-- 3.pdf
    `-- 4.pdf

3 directories, 15 files
删除 test01 内所有子文件夹里面的文件,保留文件夹

命令:

for i in `ls`;do rm -rf $i/* ;done  #注意`ls` 中的“ ` ` ”是反引号即英文输入模式下,Esc下边的那个键

注意:记得先使用 cd 切换到 test01 文件夹里面,以免误删

[root@VM-0-15-centos ~]# cd test01
[root@VM-0-15-centos test01]# for i in `ls`;do rm -rf $i/* ;done
[root@VM-0-15-centos test01]# tree
.
|-- ha01.md
|-- ha02.mp4
|-- ha03.txt
|-- my01
|-- my02
`-- my03

3 directories, 3 files

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    842 引用 • 907 回帖 • 237 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    116 引用 • 73 回帖 • 464 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • springtwr

    这条命令在目录下有隐藏文件的时候会将隐藏文件漏掉,rm 部分的命令可以改成 rm -rf $i/{*,.*} 用以删除目录下的所有文件(包括隐藏文件)。