如何从目录中删除除一个文件之外的所有文件?

2 unix bash rm macos

我需要从给定目录中删除所有文件,除了一个(它的名称已定义)。

如何从 OS X 中的终端执行此操作?我可以用一个命令来做到这一点吗?

shk*_*shk 9

shopt -s extglob && rm !(non_delete_file)
Run Code Online (Sandbox Code Playgroud)

或者

rm -f !(non_delete_file)
Run Code Online (Sandbox Code Playgroud)

或者

find . ! -name non_delete_file -delete
Run Code Online (Sandbox Code Playgroud)

请注意,上述find命令将递归运行——它将删除当前目录和所有子目录中的所有文件和目录。如果这是一个问题,请使用-type f(仅匹配文件)和-maxdepth 1(仅匹配当前目录中的内容,忽略子目录)

find . -type f -maxdepth 1 ! -name non_delete_file -delete
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

8933 次

最近记录:

10 年,5 月 前