bash知识点:文件测试

简介:

bash知识点:文件测试(测试文件是否存在,文件是某种类型)

单目测试-e file:测试文件是是否存在

-a file:测试文件是是否存在

-f file:测试是否为普通文件,是为真,否则为假

-d file:测试是否为目录文件,是为真,否则为假

-b file:测试是否存在,并且是否是块设备文件

-c file:测试是否存在,并且是否是字符设备文件

-h file:测试是否存在,并且是否是符号链接文件

-p file:测试是否存在,并且是否是管道文件

-r file:测试是否存在,并且当前用户是否有读取权限

-w file:测试是否存在,并且当前用户是否有写权限

-x file:测试是否存在,并且当前用户是否有执行权限

双目测试:

file1 -nt file2:测试file1是否比file2新一些。




例1:如果/tmp/hellodir不存在则创建。

#!/bin/bash

fileName=/tmp/hellodir

if [ -e $fileName ];then

mkdir $fileName

fi


例2:下载一个文件,如果which wget不存在,则退出5,如果不可执行which wget,则退出6


#!/bin/bash

url ='http://s2.51cto.com/wyfs02/M01/48/35/wKiom1QGaT2yybbeAAGp1WmlJ7k673.jpg'

which wget &> /dev/null || exit 5

downloader=`which wget`

[ -x $downloader ] || exit 6

$downloader $url


例3:写一个脚本,完成如下任务

1、分别复制/var/log下的文件到/tmp/logs/中

2、复制目录是,才使用cp -r

3、复制文件时,使用 cp

4、复制链接文件,使用cp -d

5、其他类型,使用cp -a

#!/bin/bash


targetDir='/tmp/logs'


[ -d $targetDir ] || mkdir $targetDir


for fileName in /var/log/*; do

   if [ -d $fileName ];then

copyCommand='cp -r'

   elif [ -f $fileName ];then

copyCommand='cp'

   elif [ -h $fileName ];then

copyCommand='cp -d'

    else 

copyCommand='cp -a'

    fi

$copyCommand $fileName $targetDir

done













本文转自lzf0530377451CTO博客,原文链接:http://blog.51cto.com/8757576/1555522 ,如需转载请自行联系原作者



相关文章
|
2月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
88 4
|
9月前
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
7月前
|
安全 关系型数据库 MySQL
MySQL8使用物理文件恢复MyISAM表测试
MySQL8使用物理文件恢复MyISAM表测试
127 0
|
11月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
309 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
810 56
|
安全 Linux 网络安全
Kali渗透测试:自动播放文件攻击
Kali渗透测试:自动播放文件攻击
204 0
|
安全 Linux 网络安全
Kali 渗透测试:利用HTA文件进行渗透攻击
Kali 渗透测试:利用HTA文件进行渗透攻击
183 1
|
Java C++
代码文件间重复性测试
本文介绍了如何使用代码相似性检测工具simian来找出代码文件中的重复行,并通过示例指令展示了如何将检测结果输出到指定的文本文件中。
221 2
|
Shell 数据处理
Bash 中检查文件是否包含字符串
【8月更文挑战第27天】
315 5
|
安全 中间件 Shell
渗透测试-靶机DC-2-知识点总结
渗透测试-靶机DC-2-知识点总结
282 0