Bash 从Shell:删除所有带撇号的文件

Bash 从Shell:删除所有带撇号的文件,bash,shell,delete-file,delete-directory,Bash,Shell,Delete File,Delete Directory,如何删除带有撇号的文件夹中的所有文件 例如: 贝尔德隧道.jpg 巴赫的鸟 这不好 我希望删除所有这些文件,但任何没有撇号的文件都保持完整,例如: 这很好 donotdelete.png 在上海你可以做什么 rm *\'* 您可以使用find命令: find-名称“*”*“-删除 正如@Bryan在评论中指出的,这将删除当前目录和所有子目录中的所有文件。如果您不想删除目录,请使用: find-名称“*”*”-maxdepth 1-删除 这使得find停留在当前目录中。GNU find find

如何删除带有撇号的文件夹中的所有文件

例如:

贝尔德隧道.jpg

巴赫的鸟

这不好

我希望删除所有这些文件,但任何没有撇号的文件都保持完整,例如:

这很好 donotdelete.png

在上海你可以做什么

rm *\'*

您可以使用
find
命令:

find-名称“*”*“-删除

正如@Bryan在评论中指出的,这将删除当前目录和所有子目录中的所有文件。如果您不想删除目录,请使用:

find-名称“*”*”-maxdepth 1-删除

这使得
find
停留在当前目录中。

GNU find

find /path/ -type f -name "*[']*" -exec rm {} +;

当然,最好是bash或sh,不带任何其他参数,这将删除当前目录和所有子目录中的所有文件。这应该是
-maxdepth 1
-depth
用于深度优先处理,不带参数)@Dennis出于某种原因,在我的mac电脑上,
-depth 1
的行为类似于
-maxdepth 1
,这不适用于给定的示例,因为它们有空格。更好:为fn在\;请填写rm“$fn”;完成