找回密码
 立即注册
搜索
查看: 4543|回复: 23

[软件] 求助,ubuntu程序文件夹中出现名字奇怪的文件,是什么?

[复制链接]
     
发表于 2023-12-14 14:33 | 显示全部楼层 |阅读模式
如题,无意到翻到usr/bin文件夹下,有个名为"["的执行文件,估计名字问题,网上也搜不到这个文件是干嘛的!
截图 2023-12-14 14-17-34.png
回复

使用道具 举报

     
发表于 2023-12-14 14:36 | 显示全部楼层
回复

使用道具 举报

头像被屏蔽
     
发表于 2023-12-14 15:06 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2023-12-14 15:14 | 显示全部楼层
因为[是命令,]是它的参数
回复

使用道具 举报

发表于 2023-12-14 15:21 | 显示全部楼层
  1. tldr [
  2. [

  3. 检查文件类型,比较数值。
  4. 如果条件计算结果为真返回 0,如果计算结果为假返回 1。
  5. 更多信息:https://www.gnu.org/software/bash/manual/bash.html#index-test.

  6. - 测试一个给定的变量是否等于/不等于指定的字符串:
  7.    [ "$变量" ==|!= "字符串" ]

  8. - 测试一个给定的变量是否等于/不等于/大于/小于/大于等于/小于等于指定的数字:
  9.    [ "$变量" -eq|ne|gt|lt|ge|le 数字 ]

  10. - 测试指定的变量的值是否非空:
  11.    [ -n "$变量" ]

  12. - 测试指定变量的值是否为空:
  13.    [ -z "$变量" ]

  14. - 测试指定文件是否存在:
  15.    [ -f 路径/到/文件 ]

  16. - 测试指定目录是否存在:
  17.    [ -d 路径/到/目录 ]

  18. - 测试指定文件或目录是否存在:
  19.    [ -e 路径/到/文件或目录 ]

  20. 注意:您的 shell 可能内置了自己的 test 和/或 [ 程序版本,它通常会取代这里所描述的
  21. 版本。请查阅您的 shell 的文档以了解内置版本所支持的选项。
复制代码
一直用的语法居然并不一定是语法
回复

使用道具 举报

     
发表于 2023-12-14 15:44 | 显示全部楼层
本帖最后由 Midnight.Coup 于 2023-12-14 15:51 编辑

Linux 命令行,很神奇吧(刃牙.jpg)
回复

使用道具 举报

     
发表于 2023-12-14 16:11 | 显示全部楼层
想出这个点子一定是天才程序员
回复

使用道具 举报

     
发表于 2023-12-14 16:16 | 显示全部楼层
image.png
惊了
回复

使用道具 举报

     
发表于 2023-12-14 16:24 来自手机 | 显示全部楼层
本帖最后由 ltycomputer 于 2023-12-14 16:49 编辑

搜了下我所知道的shell都是内置test的,不过busybox带的ash和hush默认不带,为了节省空间

但编译的时候还真能选不内置test

以前8M存储32M内存就能跑起openwrt,为了缩小体积真是无所不用其极

我好像知道为啥某些脚本在openwrt上跑不起来的原因了

但在有图形化界面的普通Linux发行版看到这玩意,的确有种Win11里看到win95代码的奇观。
回复

使用道具 举报

     
发表于 2023-12-14 16:33 来自手机 | 显示全部楼层
第一次发现这事确实挺意外的,不过现在个人 pc 最起码都是 bash,语言本身就有 [[ ]] 测试,很少见纯粹的 sh 脚本了,这东西实际在 pc 上应该用得不多,可能在一些受限环境内用得比较多吧。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2023-12-14 18:40 | 显示全部楼层
我还挺喜欢这个命令的,可以用来代替 if
  1. [ -d "foo" ] && pushd foo
复制代码
回复

使用道具 举报

发表于 2023-12-14 20:24 | 显示全部楼层
学到了
回复

使用道具 举报

发表于 2023-12-14 20:37 | 显示全部楼层
虽然现在sh基本都是bash的symlink,不过sh模式下which \[ 了一下还真是/usr/bin/[
shebang是sh的脚本应该还是挺主流吧,那这个用的意外的多
回复

使用道具 举报

     
发表于 2023-12-14 20:44 | 显示全部楼层
posthoc 发表于 2023-12-14 20:37
虽然现在sh基本都是bash的symlink,不过sh模式下which \[ 了一下还真是/usr/bin/[
shebang是sh的脚本应该还 ...

你再 `file /usr/bin/\[` 一下,八成是 symlink 到 coreutils 上的
回复

使用道具 举报

发表于 2023-12-14 20:50 | 显示全部楼层
萌名雪 发表于 2023-12-14 04:44
你再 `file /usr/bin/\[` 一下,八成是 symlink 到 coreutils 上的

opensuse 风滚草,就是普通的ELF
回复

使用道具 举报

发表于 2023-12-14 21:03 | 显示全部楼层
萌名雪 发表于 2023-12-14 20:44
你再 `file /usr/bin/\[` 一下,八成是 symlink 到 coreutils 上的

[本来就是coreutils的一个命令,为啥要symlink?
回复

使用道具 举报

     
发表于 2023-12-14 22:17 | 显示全部楼层
tsubasa9 发表于 2023-12-14 21:03
[本来就是coreutils的一个命令,为啥要symlink?

我的我的。 coreutils 一般有两种打包方法:一个个分开的二进制,或者一个 `coreutils` 二进制被 symlink 成不同的命令。 coreutils 知道自己是以什么名义被 call 的(也就是 argv[0])。我 NixOS 是后者
回复

使用道具 举报

     
发表于 2023-12-14 23:20 来自手机 | 显示全部楼层
哇 你们Linux实在是太神奇辣

— from Xiaomi 23127PN0CC, Android 14 of S1 Next Goose v2.5.2-play
回复

使用道具 举报

     
发表于 2023-12-14 23:31 | 显示全部楼层
天才的想法,酷

论坛助手,iPhone
回复

使用道具 举报

     
发表于 2023-12-15 00:17 | 显示全部楼层
一点类 unix 的小小震撼
其实换到编程语言中并不意外吧,毕竟很多语言都支持运算符重载,中括号可以作为运算符当然也能当命令。
回复

使用道具 举报

     
发表于 2023-12-15 12:03 | 显示全部楼层
基本功能可以用库实现,而不是内置的特殊语法,这就是现代编程语言的优势啊

比如 Golang 的 map 的语法而不是库,就经常被喷。
回复

使用道具 举报

     
 楼主| 发表于 2023-12-17 11:10 | 显示全部楼层
感谢各位指点,真给我一点 linux 的震撼了。最近在给自已配置一个jupyterlab环境,真是累死了。发觉自由度很高,但很不傻瓜化。现在发现s1居然有这多么linux高手,感觉像找到组织了。
回复

使用道具 举报

     
发表于 2023-12-17 12:38 | 显示全部楼层
才知道,学习了
回复

使用道具 举报

     
发表于 2023-12-17 13:15 | 显示全部楼层
这就好像发现自己用了好久的“原生”应用是拿浏览器套皮出来的一样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-28 03:47 , Processed in 0.098748 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表