KissMoon 发表于 2023-12-14 14:33

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

如题,无意到翻到usr/bin文件夹下,有个名为"["的执行文件,估计名字问题,网上也搜不到这个文件是干嘛的!

mono 发表于 2023-12-14 14:36

https://www.man7.org/linux/man-pages/man1/test.1.html

灰流うらら 发表于 2023-12-14 15:06

tsubasa9 发表于 2023-12-14 15:14

因为[是命令,]是它的参数

乔槁 发表于 2023-12-14 15:21

tldr [
[

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

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

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

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

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

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

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

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

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

Midnight.Coup 发表于 2023-12-14 15:44

本帖最后由 Midnight.Coup 于 2023-12-14 15:51 编辑

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

w酱 发表于 2023-12-14 16:11

想出这个点子一定是天才程序员

SaitoYuki 发表于 2023-12-14 16:16


惊了

ltycomputer 发表于 2023-12-14 16:24

本帖最后由 ltycomputer 于 2023-12-14 16:49 编辑

搜了下我所知道的shell都是内置test的,不过busybox带的ash和hush默认不带,为了节省空间
https://p.sda1.dev/14/5b70226696f5d1969d9b653a58d14b35/mmexport1702542250244.png
但编译的时候还真能选不内置test

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

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

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

indtability 发表于 2023-12-14 16:33

第一次发现这事确实挺意外的,不过现在个人 pc 最起码都是 bash,语言本身就有 [[ ]] 测试,很少见纯粹的 sh 脚本了,这东西实际在 pc 上应该用得不多,可能在一些受限环境内用得比较多吧。

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

小野賢章 发表于 2023-12-14 18:40

我还挺喜欢这个命令的,可以用来代替 if
[ -d "foo" ] && pushd foo

東京急行 发表于 2023-12-14 20:24

学到了

posthoc 发表于 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 上的

posthoc 发表于 2023-12-14 20:50

萌名雪 发表于 2023-12-14 04:44
你再 `file /usr/bin/\[` 一下,八成是 symlink 到 coreutils 上的

opensuse 风滚草,就是普通的ELF

tsubasa9 发表于 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)。我 NixOS 是后者

EraserKing 发表于 2023-12-14 23:20

哇 你们Linux实在是太神奇辣

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

2474089352 发表于 2023-12-14 23:31

天才的想法,酷

论坛助手,iPhone

Junakr 发表于 2023-12-15 00:17

一点类 unix 的小小震撼。
其实换到编程语言中并不意外吧,毕竟很多语言都支持运算符重载,中括号可以作为运算符当然也能当命令。

小野賢章 发表于 2023-12-15 12:03

基本功能可以用库实现,而不是内置的特殊语法,这就是现代编程语言的优势啊

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

KissMoon 发表于 2023-12-17 11:10

感谢各位指点,真给我一点 linux 的震撼了。最近在给自已配置一个jupyterlab环境,真是累死了。发觉自由度很高,但很不傻瓜化。现在发现s1居然有这多么linux高手,感觉像找到组织了。

塔奇克马 发表于 2023-12-17 12:38

才知道,学习了

煙雲靉靆 发表于 2023-12-17 13:15

这就好像发现自己用了好久的“原生”应用是拿浏览器套皮出来的一样
页: [1]
查看完整版本: 求助,ubuntu程序文件夹中出现名字奇怪的文件,是什么?