我有这样的结构
- 文件_1
- 文件_2 ...
- 文件_n
- 文件夹1/
- 子文件1
- 子文件2
我只想删除 file_1、file_2 和 file_n 但保留其中的所有文件夹和文件。
答案1
赶紧跑:
rm *
就这么简单。除非你添加 -R 或 -r 标志,否则它不会触及目录:
rm -r *
如果您还想删除空目录,请添加 --dir 标志:
rm --dir *
答案2
rm
没有-r
,禁用递归目录删除标志和 shell 通配符:
rm /path/to/dir/*
-f
如果您不想被提示,请添加。
您还可以使用find
:
find /path/to/dir -maxdepth 1 -type f -exec rm -rf '{}' \;
其工作原理是因为 amaxdepth
为 1,因此只选择顶层文件。