如何使用find来删除隐藏的文件和文件夹

我怎样才能find并删除所有文件,包括隐藏的,没有扩展名的java 。 我知道如何使用find来删除文件并运行这个命令:

 find . -not -name "*.java" -type f -delete 

这个recursionsearch文件夹的所有文件都不以* .java结尾。 但是这个命令没有隐藏文件夹中的文件。

我运行在这里find的命令: ls -lahR然后我发现命令我跑错过的文件。 例如:

 ./node_modules/.bin: total 24 drwxr-xr-x 5 whitecat staff 170B Apr 5 12:47 . drwxr-xr-x 4 whitecat staff 136B Apr 5 02:25 .. lrwxr-xr-x 1 whitecat staff 19B Apr 5 12:47 nopt -> ../nopt/bin/nopt.js lrwxr-xr-x 1 whitecat staff 20B Apr 5 12:47 semver -> ../semver/bin/semver lrwxr-xr-x 1 whitecat staff 19B Apr 5 12:47 shjs -> ../shelljs/bin/shjs 

我需要什么标志不要错过这些“隐藏”的文件。 我见过“ 如何使用Linux find find命令查看隐藏文件 ”,并且只显示find /path -type f -iname ".java" -ls 。 我已经使用该命令,它仍然错过了隐藏的文件。

-type f你正在寻找文件。

你提到的三个文件是符号链接:

rwxr-xr-x 1 whitecat staff 19B Apr 5 12:47 nopt -> ../nopt/bin/nopt.js

要find链接,你需要find-type l

所以要删除这个符号链接,你必须改变你的命令(用下面的Whitecat的注释编辑):

 find . -not -name "*.java" -type f -delete -o -type l -delete