[linux]mark-tool

简介: [linux]mark-tool

前言

在远程连接到linux进行操作时,经常要切换目录,有些目录切换频次较高,因此写了个shell工具,用于收藏目录、切换目录等。也不需要安装,直接添加脚本即可。

配置

首先声明脚本是基于bash shell,zsh和fish未经测试。

  1. 编辑文件~/.bash_custom_functions,添加以下内容
mark(){
    local markfile="$HOME/.mark"
    if [ ! -f ${markfile} ]; then
        echo "${markfile} is not exist, create it."
        touch ${markfile}
    fi
    case $1 in
        l)
            cat -n ${markfile}
            ;;
        d)
            # delete
            if [ "x" == "x$2" ]; then
                echo "need a sequence number"
                return 1
            fi
            if [ $2 -lt 0 ] || [ $2 -gt $(wc -l < ${markfile}) ]; then
                echo "invalid sequence number"
                return 1
            fi
            sed -i "$2d" ${markfile}
            ;;
        a)
            # add / append
            local new_mark=$(pwd)
            local tmp_grep=$(grep ${new_mark} ${markfile})
            if [ "x" == "x${tmp_grep}" ]; then
                echo "mark current dirname: ${new_mark}"
                echo ${new_mark} >> ${markfile}
            else
                echo "Warning! Duplicate mark"
            fi
            ;;
        c)
            # cd
            if [ "x" == "x$2" ]; then
                echo "need a sequence number"
                return 1
            fi
            if [ $2 -lt 0 ] || [ $2 -gt $(wc -l < ${markfile}) ]; then
                echo "invalid sequence number"
                return 1
            fi
            local target_dir=$(sed -n "$2p" ${markfile})
            if [ ! -d ${target_dir} ]; then
                echo "${target_dir} not found"
                return 1
            fi
            cd ${target_dir}
            ;;
        *)
            echo "Options: l(ist), a(dd), d(elete), c(hange)"
    esac
}
  1. ~/.bashrc中追加以下内容以引入上一步的文件
if [ -f ~/.bash_custom_functions ]; then
    . ~/.bash_custom_functions
fi
  1. source生效,或者重建shell会话
source ~/.bashrc
相关文章
|
7月前
|
传感器 运维 算法
数字孪生项目的开发
数字孪生项目融合物理世界与虚拟空间,涵盖需求规划、高精度建模、数据集成、智能分析及部署运维五大阶段,结合三维引擎与实时数据技术,实现设备、工厂乃至城市的可视化监控、预测性维护与智能决策,推动工业与城市数字化转型。#数字孪生 #WebGL开发 #软件外包公司
|
Ubuntu 安全 搜索推荐
揭秘Ubuntu系统的优势,你想知道吗?
对于移动设备,Ubuntu系统还在不断地探索与支持。众多Ubuntu系统的社区和开发人员正在探索Ubuntu系统在移动领域的应用,以提供全新的、更加开放和稳定的移动系统体验。 对于云服务器,Ubuntu系统作为一种轻量级的操作系统,越来越受到云服务提供商的青睐。Ubuntu系统可以作为一种安全和高效的云服务器操作系统,无论在公有云、私有云或混合云里,都可以提供出色的性能和体验。
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
存储 应用服务中间件 nginx
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
879 0
部署ELK+filebeat收集nginx日志
|
Rust JavaScript Java
简单对比Java、Python、Go、Rust等常见语言计算斐波拉契数的性能
简单对比Java、Python、Go、Rust等常见语言计算斐波拉契数的性能
674 0
|
关系型数据库 API Go
[golang]在Gin框架中使用JWT鉴权
[golang]在Gin框架中使用JWT鉴权
454 0
|
JSON 数据格式
全网首发:Seata Saga状态机设计器实战(下)
全网首发:Seata Saga状态机设计器实战(下)
1230 119
全网首发:Seata Saga状态机设计器实战(下)
|
Docker Windows 容器
clash代理docker实现镜像拉取
clash代理docker实现镜像拉取
7204 1
|
JSON 安全 API

热门文章

最新文章