为什么find要在当前目录下查找?

为什么find要在当前目录下查找?

/var/www/scripts/process_sounds.sh我有一个使用以下命令的bash 脚本:

find /var/www/unprocessed_sounds/ * -type f

它应该找到unprocessed_sounds目录中的所有文件,它确实做到了,但它也找到了脚本目录中的所有文件(然后像声音文件一样处理它们,这不是我想要的)。

为什么会find返回当前目录中的东西?

答案1

您以错误的方式编写命令。要在目录中搜索文件/var/www/unprocessed_sounds/,你应该这样写

find /var/www/unprocessed_sounds/ -type f

像这样编写find /var/www/unprocessed_sounds/ * -type f将搜索文件 in/var/www/unprocessed_sounds/*这意味着当前目录中的所有目录。

答案2

你的命令中有一个空格

find /var/www/unprocessed_sounds/ * -type f

find正在解释您想要查找其中的所有文件/var/www/unprocessed_sounds/./* 去掉星号(因为 find 无论如何都会深入到目录中)

答案3

如果您只想处理 /var/www/unprocessed_sounds/ 目录中的文件,那么您不需要在其中使用 * 。

尝试仅使用:

find /var/www/unprocessed_sounds/ -type f

相关内容