首页 > 系统相关 >shell 脚本中的 '-f' 和 '-d' 分别代表什么意思

shell 脚本中的 '-f' 和 '-d' 分别代表什么意思

时间:2023-12-15 12:46:57浏览次数:22  
标签:脚本 文件 shell echo 意思 file fi path 表达式

shell脚本中,'-f' 和 '-d'是用于测试文件类型的条件表达式。
1、'-f'表达式:

  • 表达式: '[ -f file ]'
  • 描述: 判断给定路径是否是一个常规文件 (regular file)。 常规文件是指不是目录或设备文件的文件。
  • 示例:
    if [ -f /path/to/file ]; then
    echo "这是一个文件。"
    fi

2、'-d'表达式:

  • 表达式: '[ -d dirctory ]'
  • 描述: 判断给定路径是否为一个目录。
  • 示例:
    if [ -d /path/to/dirctory ]; then
    echo "这是一个目录"
    fi
    以上两个表达式通常与条件语句结合使用,例如'if'语句,来根据文件或目录的类型执行不同的操作。

示例脚本:

!/bin/bash

file_path="/path/to/somefile"
directory_path="/path/to/somedirectory"

检查文件是否存在并是常规文件

if [ -f "$file_path" ]; then
echo "The file exists and is a regular file."
else
echo "The file either does not exist or is not a regular file."
fi

检查目录是否存在

if [ -d "$directory_path" ]; then
echo "The directory exists."
else
echo "The directory does not exist."
fi

此脚本演示了如何使用'-f'和'-d'条件表达式来测试文件和目录。在实际脚本中,这样的条件判断常用于根据不同的情况执行不同的操作。

标签:脚本,文件,shell,echo,意思,file,fi,path,表达式
From: https://www.cnblogs.com/brxx/p/17903119.html

相关文章

  • shell补-shell数组
    shell补-shell数组回顾变量的赋值方法直接赋值:a=1引用命令结果:ip=$(hostname-I|awk'{print$1}')通过read交互示参数传递:脚本/函数参数传参不了解数组之前可以用whilereadline这类方法语法:数组名称[下标],从0开始####赋值比较繁琐[root@localho......
  • shell补-命令补缺-命令回顾(重要)
    shell补-命令补缺-命令回顾命令行概述参数(parameter)选项(option)选项:命令的不同功能参数:把是什么东西传递给命令(目录/文件....)命令选项(optiongs)参数parameterls-l/etc/hostssh-x/etc/init.d/networkrestart在linux命令行下查看命令......
  • shell补-特殊玩法-cut命令tar以及past和join
    shell补-特殊玩法-cut命令是awk的阉割版具体情况,后面详看shell补-特殊玩法-tar压缩指定目录案例案例:指定目录路径,脚本自动将该使用tar命令打包备份到/data目录#!/bin/bashread-p"Inputdirtobackup:"dirif[-d"${dir}"];then #tar-zcvf/data/$(date+%F_%H)......
  • shell补-特殊玩法-shell编程debug
    shell补-特殊玩法-shell编程debugdebug思想debug测试单步执行脚本自个调试,用注释,或者echo自个打印输出啥的,就这么搞bash-x整个脚本调试set与开关debug(适用于脚本或者命令行都可以)set-x开始debugset+x结束debug##在脚本启用set;set-x开始,set+x结尾......
  • shell补-循环案例-循环case
    shell补-循环案例-循环casecase结构条件的语法格式;一般应用菜单的功能case$变量名in"值1")###如果变量的值1,则执行此程序1;;"值2")###如果变量的值2,则执行此程序2;;###....省略其他分支YES|yes|Yes)#####此处的值,可以带些符号,比如|表示或者;也可以用[a-z]感觉......
  • window mysql 自动按日期备份Sql脚本
    一、背景这几天数据中了病毒,服务器被黑,Mysql数据库遭比特币勒索!!!数据库有开启binlog那就还有恢复的可能。那么恭喜你可以参考这篇文章https://zhuanlan.zhihu.com/p/311435595如果没有开启,那没办法了,只能吃一堑长一智,要么数据库做同步【做新增、修改,切记删除的不要同步】,要么数......
  • shell补-特殊玩法-生成随机字符串
    shell补-特殊玩法-生成随机字符串方法1:md5sum方法2:tr+/dev/urandom方法3:内置变量RANDOM;#方法1[root@localhostser]#opensslrand-base64108/54arQpCmQ12Q==[root@localhostser]##方法2必备[root@localhostser]#date+%N|md5sum###给日期加密;可以写其......
  • shell补-特殊玩法-批量修改文件
    shell补-特殊玩法-批量修改文件几个其他方法;感觉最简单的就是rename###方法3rename#rename找谁,替换为什么范围[root@localhostrandom]#ll总用量0-rw-r--r--.1rootroot011月1716:03bcauiftqdr.mrxu.html-rw-r--r--.1rootroot011月1716:03dkjoyp......
  • shell补-特殊玩法-批量修改密码
    shell补-特殊玩法-批量修改密码写一个脚本批量添加用户和随机密码root@localhostusr]#bashrandomadduser.sh更改用户mrrxu00001的密码。passwd:所有的身份验证令牌已经成功更新。更改用户mrrxu00002的密码。passwd:所有的身份验证令牌已经成功更新。更改用户mrr......
  • shell补-特殊玩法-安全防护案例
    shell补-特殊玩法-安全防护案例案例1:编写一个shell脚本解决类DDOS攻击的生成案例,请更加web日志或者系统网络连接数,监控当某个ip并非连接数,若短时间内PV达到100(阈值),即调用防火墙命令封掉对应的ip.防火墙命令iptables-IINPUT-sIP地址-jdrop查看被封的ip:iptables-nL......