linux shell 指令 【-d, -f, -e】等判断表达式

本文详细介绍Linux中文件属性及字符串的比较运算符,包括文件的存不存在、类型、权限,字符串的长度与内容对比,以及数值的大小比较。通过具体实例展示了如何使用这些运算符进行条件判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、文件比较运算符 
1. e filename 如果 filename存在,则为真 如: [ -e /var/log/syslog ] 
2. -d filename 如果 filename为目录,则为真 如: [ -d /tmp/mydir ] 
3. -f filename 如果 filename为常规文件,则为真 如: [ -f /usr/bin/grep ] 
4. -L filename 如果 filename为符号链接,则为真 如: [ -L /usr/bin/grep ] 
5. -r filename 如果 filename可读,则为真 如: [ -r /var/log/syslog ] 
6. -w filename 如果 filename可写,则为真 如: [ -w /var/mytmp.txt ] 
7. -x filename 如果 filename可执行,则为真 如: [ -L /usr/bin/grep ] 
8. filename1-nt filename2 如果 filename1比 filename2新,则为真 如: [ 
/tmp/install/etc/services -nt /etc/services ] 
9. filename1-ot filename2 如果 filename1比 filename2旧,则为真 如: [ 
/boot/bzImage -ot arch/i386/boot/bzImage ]

二、字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法) 
 1. -z string  如果 string长度为零,则为真 如:  [ -z "$myvar" ]
 2. -n string  如果 string长度非零,则为真  如: [ -n "$myvar" ]
 3. string1= string2  如果 string1与 string2相同,则为真 如:  ["$myvar" = "one two three"]
 4. string1!= string2  如果 string1与 string2不同,则为真 如:  ["$myvar" != "one two three"]

三、算术比较运算符 
 1. num1-eq num2  等于 如: [ 3 -eq $mynum ]
 2. num1-ne num2  不等于 如: [ 3 -ne $mynum ]
 3. num1-lt num2  小于 如: [ 3 -lt $mynum ]
 4. num1-le num2  小于或等于  如:[ 3 -le $mynum ]
 5. num1-gt num2  大于  如:[ 3 -gt $mynum ]
 6. num1-ge num2  大于或等于 如: [ 3 -ge $mynum ]

四、查看磁盘、文件大小 
1. df -h 查看磁盘占用情况 
2、du -sm ./* 查看当前目录下文件大小,单位M

### Linux 命令中的 `-f` 参数意义 在 Linux 中,`-f` 是一个常见的选项参数,其具体含义取决于所使用的命令。以下是关于 `-f` 的几种常见解释及其应用场景: #### 1. `gawk` 中的 `-f` 参数 在 GNU Awk (`gawk`) 中,`-f` 表示指定一个包含程序代码的文件作为输入脚本[^1]。 例如: ```bash gawk -f script.awk data.txt ``` 上述命令表示运行名为 `script.awk` 的脚本文件,并将其应用于数据文件 `data.txt`。 #### 2. 文件操作类命令中的 `-f` 参数 对于某些涉及文件删除或强制覆盖的命令(如 `rm`, `cp`, 或 `mv`),`-f` 表示 **force**(强制执行)。它通常用于忽略不存在的文件并抑制错误提示。例如: ```bash rm -f file.txt ``` 此命令会尝试删除 `file.txt` 并不会询问用户确认,即使文件不存在也不会报错[^3]。 #### 3. 配置文件加载场景下的 `-f` 部分工具允许通过 `-f` 来指定配置文件路径。例如,在 SFTP 客户端中,可以通过 `-f` 加载自定义配置文件来替代默认设置[^4]: ```bash sftp -b batch_file user@host ``` 尽管此处未直接提及 `-f`,但在类似的上下文中,该参数可能被用来提供额外的配置支持。 #### 4. Shell 脚本环境中的条件判断语句 虽然严格来说这不是 `-f` 的功能描述,但值得注意的是,在 POSIX 和 Bash 的测试表达式 `[ ]` 或 `[[ ]]` 中,`-f FILE` 可用于检测某个给定路径是否为常规文件存在且可访问[^2]。例如: ```bash if [ -f /path/to/file ]; then echo "File exists and is a regular file." fi ``` --- ### 总结 综上所述,`-f` 在不同命令中有不同的作用范围,主要体现在以下几个方面: - 对于像 `gawk` 这样的解析器型工具而言,它是引入外部脚本的方式; - 在文件管理领域,则更多体现为一种无交互式的强力模式开关; - 当涉及到特定类型的布尔查询时(比如文件属性验证),又成为了一种状态探测手段之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值