linux学习贴

linux学习贴

查找文件名并拷贝到指定文件夹

find -name *.pl | xargs cp  ara/

解压大全

tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip

运行字符串

我今天知道,原来shell里的变量命名“=”很有讲究

#!/bin/bash
#运行一串字符串的脚本

direct="cctv"
#注意=左边不要有空格
eval "mkdir $direct "
#运行字符串靠的是eval命令,其他方法都不好使

判断文件是否存在

#!/bin/bash
#判断文件是否存在
PATH="./shell.sh"
if [ ! -f "$PATH" ];then
        echo "path not found"
else
        echo "path exist"
fi
#判断文件夹是否存在
PATH="./yang"
if [ ! -d "$PATH" ];then
        echo "path not found"
else
        echo "path exist"
fi

详细参数

-e 判断$a是否存在
-d 判断$a是否存在,并且为目录
-f 判断$a是否存在,并且为常规文件
-L 判断$a是否存在,并且为符号链接
-h 判断$a是否存在,并且为软链接
-s 判断$a是否存在,并且长度不为0
-r 判断$a是否存在,并且可读
-w 判断$a是否存在,并且可写
-x 判断$a是否存在,并且可执行
-O 判断$a是否存在,并且属于当前用户
-G 判断$a是否存在,并且属于当前用户组
-nt 判断file1是否比file2新  [ "/usr/local/src/file1" -nt "/usr/local/src/file2" ]
-ot 判断file1是否比file2旧  [ "/usr/local/src/file1" -ot "/usr/local/src/file2" ]

但是不能模糊匹配文件和文件夹,它可能把*号当做文件夹名了。我也正在寻找合适的方法模糊匹配文件夹,各位知道请留言告诉我。
我找到了方法

模糊判断文件是否存在

#!/bin/bash
files=$(ls ./results/*type_0a.fa 2> /dev/null | wc -l);

if [ "$files" != "0" ] ;then  #如果存在文件

echo "this works"

fi

linux的字符串拼接

a="123"
b="456"
c="a""b"
echo $c
#c="123456"
#和其他语言不一样,不用+或者&

执行字符串

command="ls -al"
#方法一
$command
#方法二
eval `ls -al`

猜你喜欢

转载自blog.csdn.net/mushroom234/article/details/110582987