linux下执行sh文件,提示“No such file or directory”

说起这个"Nosuchfileordirectory"错误,我以前也遇到过几次,挺头疼的。
说实话,这个问题挺常见的,解决起来其实也不复杂,就是得一步步来。

首先,你得确认文件真的在你指定的路径下。
我记得有一次,我犯了个低级错误,文件名少了个字母,直接导致了这个问题。
所以,你得仔细核对文件名和路径,一个字符都不能错。
Linux系统对大小写是敏感的,所以大小写也要对得上。

然后,得看看文件有没有执行权限。
我以前用过ls-l命令检查权限,如果发现执行权限缺失,就用chmod命令给文件加上执行权限。
比如,你可以在命令行里输入chmod+xfilename.sh,这样文件就有了执行权限。

还有一点,得确保当前用户有权限访问这个文件。
我之前就遇到过这种情况,文件和路径都对,执行权限也设置好了,但就是执行不了。
后来发现是因为我没有权限访问文件所在的目录。
你可以用ls-ld目录路径来检查目录权限,确保当前用户有权限访问。

总的来说,解决这个错误,你得做到以下几点: 1 . 核对文件名和路径,确保没有错误。
2 . 检查文件执行权限,用chmod命令设置。
3 . 确保当前用户有权限访问文件所在的目录。

这样一步步来,问题一般都能解决。
不过,我也得承认,有些特殊情况可能需要更深入的调查,那时候可能就得请教一下更专业的同事或者查阅一下更详细的资料了。

linux中怎么查看文件是否存在?

find命令这玩意儿啊,用得溜。
Linux下面找文件就靠它。

find命令的语法,记着点儿:find [指定查找目录] [查找规则] [查找完后执行的action]。

比如啊,find /tmp -name wa -type l,这个就是在/tmp目录下找名字以wa开头的符号链接文件。
找到了,说明存在。

shell脚本呢,这玩意儿在文件自动处理中常用。
得自动判断文件是否存在。

举个例子,写个脚本判断test.log是否存在。
用vi编辑脚本,t.sh这个文件名。

!/bin/bash if [-e /temp/test.log];then // 这里判断语句,-e表示比较结果为真则存在 echo "文件存在" else echo "文件不存在" fi
保存退出,然后执行sht.sh。
这样就能判断文件是否存在了。

linux为什么有时候会出现找不到文件的情况呢?

哈喽~ 看你这问题,我帮你捋捋啊。

你说的这事儿,我看信息挺全乎的。
简单说就是你在6 4 位的系统上,想运行一个老掉牙的3 2 位程序,结果卡壳了。

你查得也对: 1 . 你用 file 命令确认了,那个 tshref2 文件确实是3 2 位的可执行文件,权限也给你看了 -rwxr-xr-x。
2 . 你用 uname -m (或者就是 uname,看系统怎么显示) 确认了系统是6 4 位的,没跑儿。
3 . 核心问题就在这,6 4 位系统天生就认不了3 2 位的 lib 库(就是程序运行需要的依赖),就像你开个越野车,非要塞3 2 个轮胎一样,不匹配。

解决方法也给你找对了: 4 . 在Ubuntu上,装3 2 位库是标准操作,你说的命令思路没问题。
通常就是用 sudo apt-get install lib3 2 stdc++6 或者类似这种带 lib3 2 前缀的包。
5 . 你说的“可能找不到精确的库,会有替代包”这太对了!有时候你指定的那个3 2 位库可能因为某些政策或者版本问题没了,系统会提示你选一个类似的。
这时候你得稍微懂点,选一个看起来最靠谱的装上,装完再试。
别瞎选,不然可能引发新的问题。
6 . 安装对之后,你用 ldd tshref2 命令再检查一下这个可执行文件依赖的库,看看还有没有红色的 not found 字样了。
如果都没问题了,就能跑起来。

不过啊,你补充的Linux特性和参考资料,虽然信息是准确的,但跟你遇到的具体问题关系不大哈。
就是像你查了查Linux的“说明书”——它免费、开源、兼容POSIX、支持多用户多任务、有字符和图形界面、还能跑好多平台——这些是Linux本身的优点,但跟你那个“位数不匹配”的小故障解决没啥直接联系。

所以总结一下:你遇到的是典型的“位数不匹配”问题,在6 4 位系统上运行3 2 位程序必须装对应的3 2 位库。
你查的资料和解决思路都对路。
就是那个 ldd 命令别忘了用,装完库后验证一下是不是真的解决了依赖问题。

嗯,大概就是这些。
反正问题能定位到这儿,解决方法也知道了,你照着试试看就成。