shell判断文件后缀为.z是否存在

shell判断文件后缀为.z是否存在,第1张

可以用“test 条件表达式”进行测试,姿漏如:test -f /etc/fstab 测试文件/etc/fstab文件是否存在

-e File如果文件File存在(Exist),则为True-s File如果文件File存在且文件大小(Size)大于零,则为True-f File如果文件File存在且是普通文件(File),则为True-d File如果文件File存在且是目录(Directory),则为True-b File如果文件File存在且是块(Block)特殊文件,则为True-c File如果文件File存在且是字符(Character)特殊文件,则为True-L File如果文件File存在且是符号链接(Link)文件,则为True-r File如果文件File存迹清烂在且是可读的(Readable),则为True-w File如果文件File存在且是可写的(Writable),则为True-x File如果文件File存在且是可执行的(Executable),则为True-O File如果正亩文件File存在且属于当前用户(Owner),则为True-G File如果文件File存在且属于当前用户组(Group),则为TrueFile1 -nt File2如果文件File1新于(Newer Then) File2,则为TrueFile2 -ot File2如果文件File1旧于(Older Then) File2,则为True

[-a file] 如果file存在则为真 

不过貌似有时候-a表示为and:条件与

在[] 表达式中,常见的>,<需要加转义字符,表示字符串大小比较,以acill码 位置作为比较。 不直接支持<>运算符,还有逻辑运算符|| &&它需要用-a[and] –o[or]表示

[-b file] 如果file存在且是一个块特殊文件则为真 

[-c file] 如果file存在且是一个字特殊文件则为真 

[-d file] 如果file文件存在且是一个目录则为真 

-d前的!是逻辑非 

例如: 

if [ ! -d $lcd_path/$par_date ] 

表示后面的那个目录不存在,则执行后面的then *** 作 

[-e file] 如果file文件存在则为真 

[-f file] 如果file存在且是一个普通文件则为真 

[-g file] 如果file存在且已经设置了SGID则为真(SUID 是 Set User ID, SGID 是 Set Group ID的意思) 

[-h file] 如果file存在且是一个符号连接基物则为真 

[-k file] 如果file存在且已经设置粘制位则为真 

当一个目录被设置为"粘制位"(用chmod a+t),则该目录下的文件只能由 

一、超搏耐液级管理员删除 

二、该目录的所有者删除 

三、该文件的所有者删除 

也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。 

具体例子如下: 

#ls -dl /tmp 

drwxrwxrwt 4 root    root  ......... 

注意other位置的t,这便是粘连位。 

[-p file] 如果file存在且是一个名字管道(F如果O)则为真 

管道是linux里面进程间通信的一种方式,其他的还有像信号(signal)、信号量、消息队列、共享内存、套接字(socket)等。 

[-r file] 如果file存在且是可读的则为真 

[-s file] 如果file存在且大小不为0则为真 

[-t FD] 如果文件描述符FD打开且指向一个终端则为真 

[-u file] 如果file存在且设置了SUID(set userID)则为真 

[-w file] 如果file存在且是可写的则为真 

[-x file] 如果file存在且是可执行的则为真 

[-O file] 如果file存在且属有效用户ID则为真 

[-G file] 如果file存在且属有效用户组则为真 

[-L file] 如果file存在且是一个符号连接则为真 

[-N file] 如果file存在and has been mod如果ied since it was last read则为真 

[-S file] 如果file存在且是一个套接字则为真 

[file1 –nt file2] 如果file1 has been changed more recently than file2或者file1 exists and file2 does not则为真 

[file1 –ot file2] 如果file1比file2要老,或者file2存在且file1不存亩冲在则为真 

[file1 –ef file2] 如果file1和file2指向相同的设备和节点号则为真 

[-o optionname] 如果shell选项“optionname”开启则为真 

[-z string] “string”的长度为零则为真 

[-n string] or [string] “string”的长度为非零non-zero则为真 

[sting1==string2] 如果2个字符串相同。“=”may be used instead of “==”for strict posix compliance则为真 

[string1!=string2] 如果字符串不相等则为真 

[string1

[arg1 OP arg2] “OP”is one of –eq,-ne,-lt,-le,-gt or –ge.These arithmetic binary oprators return true if “arg1”is equal to,not equal to,less than,less than or equal to,greater than,or greater than or equal to“agr2”,respectively.“arg1”and “agr2”are integers. 

shell脚本实现文件改名小 *** 空返早作, 在此做一记录.

#!/bin/bash#将数据文件.SAC名改为'<sta>.[N/E/Z].SAC'#例如2014.143.20.49.21.0000.YN.BAS.00.BHE.M.SAC改为BAS.E.SACcd ../Datafor FILE in ./* do cd ./$FILE ls#先ls,显示给文件下的所有文件名,对这些文件名使用awk命令,print出斗雀相应的mv *** *** 交由bash处理,给文件重命名.ls *.SAC | awk -F"." '{print "mv "$0" "$8"."$10"."$12}'世大 | bash rename "s/BH//" * #将BH替换为"",即删除BH# rename 's/^/filt./' *.SAC #增加前缀"filt."# rename 's/filt.//' * #删除前缀"filt." cd .. done


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8240346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存