Bash 如何删除除目录以外的所有文件?

Bash 如何删除除目录以外的所有文件?,bash,directory,delete-file,subdirectory,Bash,Directory,Delete File,Subdirectory,我正在搜索一个解决方案,删除一个工作目录中除子目录以外的所有文件,但未成功 我找到了一种方法来删除所有目录中的所有文件,但我正在寻找一种方法,只删除与我所在的“级别”相同的文件 find命令递归地在目录中搜索与指定表达式匹配的文件和文件夹 -maxdepth 1将仅搜索当前级别(与一起使用时,或在使用目录时搜索顶层),有效地关闭递归搜索功能 -type f仅指定文件,并指定所有文件 @建议对上述内容进行改进,以便简单使用 find . -maxdepth 1 -type f -delete

我正在搜索一个解决方案,删除一个工作目录中除子目录以外的所有文件,但未成功

我找到了一种方法来删除所有目录中的所有文件,但我正在寻找一种方法,只删除与我所在的“级别”相同的文件

find
命令递归地在目录中搜索与指定表达式匹配的文件和文件夹

  • -maxdepth 1
    将仅搜索当前级别(与
    一起使用时,或在使用目录时搜索顶层),有效地关闭递归搜索功能
  • -type f
    仅指定文件,并指定所有文件
@建议对上述内容进行改进,以便简单使用

find . -maxdepth 1 -type f -delete

我不知道为什么一开始我没有想到这一点,但无论如何。

我认为这很容易:

$ rm *
当在工作目录中时

我已经对它进行了测试,它成功了——它删除了工作目录中的所有文件,并且没有影响任何子目录中的任何文件

请记住,如果您也想删除隐藏文件,则需要:

$ rm * .*

@IKavanagh,但它仍然成功地删除了所有文件。无论如何,谢谢你指出这一点!你怎么知道这些文件是否被成功删除了,比如说在脚本中?@IKavanagh,你完全正确。你的答案比我的好得多。对于日常使用,我会选择
rm*
。不过,谢谢你,除了文件夹上的错误消息之外,它工作得很好-但它确实起到了作用。如果
-print0
可用,最有可能的是
-delete
。这很好,而且用途广泛,尽管我收到以下输出:find:warning:您在非选项参数-type之后指定了-maxdepth选项,但选项不是位置性的(-maxdepth影响在它之前指定的测试以及在它之后指定的测试)。请在其他参数之前指定选项。rm:缺少操作数有关详细信息,请尝试“rm--help”。文件夹中的所有文件都已删除调整参数,
find
wants
-maxdepth
。。。嗯,第二个事实上,在
-键入
查找之前-maxdepth 1-type f-delete
>>功能完美。非常感谢。
$ rm * .*