如何查找并删除所有不带扩展名的文件(包括隐藏文件)java
。我知道如何使用 find 删除文件并运行以下命令:
find . -not -name "*.java" -type f -delete
这将递归搜索所有文件夹中不以 *.java 结尾的所有文件。但该命令会遗漏隐藏文件夹中的文件。
我运行命令发现这里: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 /path -type f -iname ".java" -ls
。我已经使用过该命令但仍然找不到隐藏文件。
答案1
您-type f
正在寻找文件。
您提到的三个文件是符号链接:
rwxr-xr-x 1 whitecat staff 19B Apr 5 12:47 nopt -> ../nopt/bin/nopt.js
要查找您需要查找的链接-type l
因此,要删除此符号链接,您必须将命令更改为(根据下面 Whitecat 的评论进行编辑):
find . -not -name "*.java" -type f -delete -o -type l -delete