linux环境shell文件操作

    在写linux的shell脚本的时候,操作文件经常是必须的。下面是一些常见的命令和文件操作,总结一下,方便后面查找使用。

1dirname命令

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

basename /opt/research/tmp
basename /opt/research/tmp/nlu_new.pid

3 判断目录或目录是否存在

#判断文件
test -f /opt/research/tmp/nlu_new.pid #文件存在,返回值为0,否则为1
echo $? #$?表示取上次执行命令的返回值

#判断目录
test -f /opt/research/tmp #目录存在,返回值为0,否则为1
echo $?

4 判断目录是否存在,不存在则创建

test -d /opt/research/tmp || mkdir /opt/research/tmp

5 判断目录是否为空

if [[ `ls /opt/research/tmp/ |wc -l`  -eq "0" ]]; then
    echo "path is empty"
else
    echo "path is not empty"
fi

6 查看目录及所有子目录子文件的大小

for fname in `ls` 
do
    du -sh ${fname}
done


你可能感兴趣的:(linux,shell,常用命令,文件操作)