在写linux的shell脚本的时候,操作文件经常是必须的。下面是一些常见的命令和文件操作,总结一下,方便后面查找使用。
dirname命令去除一个文件或者目录的最后那个子文件名。
根据一个文件名,或者一个路径名,获取上层父目录或者文件名
dirname /opt/research/tmp/nlu_new.pid #得到/opt/research/tmp dirname /opt/research/tmp #得到/opt/research dirname research/tmp #得到research特别注意,对系统根目录,或者一个单独文件名或目录名,结果如下:
dirname / #得到/ (系统根目录) dirname filename #得到.(当前目录)
dirname 命令,也可以同时传入多个目录和文件名,如下:
dirname /user/test1/fname /user/test2/fname2 #将得到/user/test1 /user/test2
basename /opt/research/tmp basename /opt/research/tmp/nlu_new.pid
#判断文件 test -f /opt/research/tmp/nlu_new.pid #文件存在,返回值为0,否则为1 echo $? #$?表示取上次执行命令的返回值 #判断目录 test -f /opt/research/tmp #目录存在,返回值为0,否则为1 echo $?
test -d /opt/research/tmp || mkdir /opt/research/tmp
if [[ `ls /opt/research/tmp/ |wc -l` -eq "0" ]]; then echo "path is empty" else echo "path is not empty" fi
for fname in `ls` do du -sh ${fname} done