🔨工具:bash常用命令
本文记录工作中常用的bash命令,忘性大,在此记录。
文件操作
- 文件夹不存在则创建
path=/mnt/datasets/kitti/
if [ ! -d ${path} ]; then mkdir -p ${path} #创建目录及其子目录 fi
其中-d表示文件比较符,判断文件夹是否存在
- 判断文件是否存在,若存在,则删除
file_path=/mnt/datasets/kitti/data.csv
if [ ! -f ${file_path} ]; then echo "file not exists..." else echo "file exists, delete it!" rm -f ${file_path} fi
其中-f表示文件比较符,判断文件是否存在
以下列举常用的文件比较符:
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]
-ot 判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2" ]
循环
bash中定义数组的语法
variable=(arg1 arg2 arg3 ....)
获取下标为n的元素
variable[n]
而且不存在数组下标溢出的情况,如果 n>= 数组的长度,那么为空,不会报错。
获取数组长度
${#variable[@]} ```
或者
```bash
${#variable[*]} ```
### 遍历的两种方式
```bash
for i in ${variable[@]}; do #do something done ```
或者
```bash
for i in $(seq 0 ${#variable[@]}); do e=${variable[$i]}
# do something....
done
以上两种方法 把 @ 换成 * 也行。