我曾试图寻找一种方法来删除工作目录中除子目录外的所有文件,但未能成功。
我找到了一种删除所有目录中所有文件的方法,但是我正在寻找一种只删除当前“层级”上的文件的方法。
我找到了一种删除所有目录中所有文件的方法,但是我正在寻找一种只删除当前“层级”上的文件的方法。
find . -maxdepth 1 -type f -print0 | xargs -0 rm
find
命令可以递归地搜索目录中与指定表达式匹配的文件和文件夹。
-maxdepth 1
将仅搜索当前级别(与.
一起使用时或使用目录代替时的顶级),有效地关闭递归搜索功能-type f
指定只搜索文件,所有文件都包括在内@chepner建议改进上述内容,简单地使用:
find . -maxdepth 1 -type f -delete
不确定为什么我一开始没想到,但无论如何。
$ rm *
当在工作目录内时。
我已经测试过了,并且它起作用了——它会删除工作目录中的所有文件并不会影响任何子目录中的文件。
请记住,如果您想删除隐藏文件,那么需要:
$ rm * .*
rm *
。 - Mateusz Piotrowski
-print0
,那么很可能也可以使用-delete
。 - chepnerfind
命令需要-maxdepth
参数……实际上是第二个参数,在-type
参数之前。 - KurzedMetalfind . -maxdepth 1 -type f -delete
>> 工作完美。谢谢! - Tango_Chaser