Bash 找不到这样的文件或目录

Bash 找不到这样的文件或目录,bash,unix,Bash,Unix,我可以在mac的TextMate中毫无问题地执行我的代码,但是如果我尝试在终端中执行包含此命令的相同代码,就像这样。/Test.sh我有一个错误: find: ftsopen: No such file or directory 代码: 如果我将脚本文件移动到另一个文件夹,是否必须更改?因为只有在移动脚本时才会出现此错误 非常感谢/指您正在执行的当前文件夹。如果将其移动到另一个文件夹,则会尝试在移动到的文件夹中查找$dossier 替换./为您试图搜索的文件夹的完整路径,它应该可以正常工作。f

我可以在mac的TextMate中毫无问题地执行我的代码,但是如果我尝试在终端中执行包含此命令的相同代码,就像这样。/Test.sh我有一个错误:

find: ftsopen: No such file or directory
代码:

如果我将脚本文件移动到另一个文件夹,是否必须更改?因为只有在移动脚本时才会出现此错误

非常感谢

/指您正在执行的当前文件夹。如果将其移动到另一个文件夹,则会尝试在移动到的文件夹中查找$dossier

替换./为您试图搜索的文件夹的完整路径,它应该可以正常工作。

find命令在目录层次结构中搜索文件。通过将目录切换到您要查找的文件/文件夹,您可以找到它。为了让脚本在整个系统中搜索r-repo,请删除。在正斜杠前面

find/-name foo

这将在整个系统中搜索任何文件 命名为foo并显示其路径名。这里我们使用的是 带有参数foo的条件‑name告诉find执行名称 搜索文件名foo。输出可能如下所示:

如果“查找”未找到任何匹配的文件,则不会生成任何输出

下面是我对你的脚本和名为“游戏”的文件夹所做编辑的一个示例

#!/bin/bash
dossier="Games"
dossierpath=$(find ./ -name "${dossier}")
echo "$dossierpath"

root@kali:~/Desktop# '/root/Desktop/help' 
这将返回空输出,因为“我的桌面名称”游戏中没有文件/文件夹

当我编辑脚本使其不包含,它很容易找到它

#!/bin/bash
dossier="Games"
dossierpath=$(find / -name "${dossier}")
echo "$dossierpath"

root@kali:~/Desktop# '/root/Desktop/help' 
/root/Games
输出为/root/Games

这两个链接可能会在必要时提供一些额外的帮助


您从哪里运行该命令?您是否从终端和textmate中的相同文件位置运行它?如果我在终端中从桌面运行文件,没有问题,但如果我将文件移动到另一个文件夹,则不会显示任何内容。我已将我的代码修改为:dossierpath=$find/-name$dossier 2>/dev/null,但我的权限被拒绝错误通常被拒绝指您正在运行的脚本没有运行权限-查找chmod或右键单击“属性”>“权限”>“确保执行”有复选标记-或者您没有以具有适当权限的用户身份运行脚本。尝试以root-su命令运行它。从/搜索将覆盖相当多的文件系统。。。这是一个普通用户无法访问的部分。正是Etan所说的。而且,如果我的回答解决了您的问题,最好将其标记为这样,以供未来的观众使用。
#!/bin/bash
dossier="Games"
dossierpath=$(find ./ -name "${dossier}")
echo "$dossierpath"

root@kali:~/Desktop# '/root/Desktop/help' 
#!/bin/bash
dossier="Games"
dossierpath=$(find / -name "${dossier}")
echo "$dossierpath"

root@kali:~/Desktop# '/root/Desktop/help' 
/root/Games