< OS 有关> BaiduPCS-Go 程序的 菜单脚本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)

news2025/2/3 14:15:57

目标:

使用 日本阿里云的 VPM 传输文件。

暂时方案:

  • 使用 主机JPN 下载 https://huggingface.co/ 上模型
  • 从 JPN 放到 度狗上
  • 在家里从狗度下载 

为了减少编程,尽量使用现在软件 ,就找到 GitHub - qjfoidnh/BaiduPCS-Go: iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能

昨天在试用它,发现登录使用 BDUSS 非常方便,但命令行很麻烦,就按照 项目中的 read.me 内容做了这个 Shell Script:  Create BaiduPCS-Go.Menu.sh

Script: Create BaiduPCS-Go.Menu.sh (bdgo.sh)

概述:

这是 BaiduPCS-Go 的交互式 Shell bash 菜单脚本,BaiduPCS-Go 是百度网盘 (Baidu Pan) 的命令行客户端。脚本提供一个数字输入的菜单界面,通过“菜单编号” 使用 BaiduPCS-Go的各个功能,不能费脑子去记命令行操作,生活更容易。

界面:

自定义变量:

BDUSS 文件:

BDUSS_FILE="/share/Multimedia/2024-MyProgramFiles/29.QTS_conf_files/bd.BDUSS"

默认下载目录

DEFAULT_DOWNLOAD_DIR="/root"

Full script file:

#!/bin/bash
# Craeted by Dave on 28Jan.2025  Version 0.3
# History --
# 0.1 To use the manual structure as https://github.com/qjfoidnh/BaiduPCS-Go/blob/main/README.md listed. 
# 0.2 added pause(), clear_screen()
# 0.3 added Loading BDUSS file and Default Download location.

# BDUSS 文件:
BDUSS_FILE="/share/Multimedia/2024-MyProgramFiles/29.QTS_conf_files/bd.BDUSS"


# 默认下载目录
DEFAULT_DOWNLOAD_DIR="/root"

# 清屏
clear_screen() {
    clear
}

# 暂停 
pause() {
    echo
    read -p "按回车键继续..." key
}

# loading BDUSS
read_bduss() {
    if [ ! -f "$BDUSS_FILE" ]; then
        echo "错误: BDUSS文件不存在: $BDUSS_FILE"
        return 1
    fi
    
    BDUSS=$(cat "$BDUSS_FILE")
    if [ -z "$BDUSS" ]; then
        echo "错误: BDUSS文件内容为空"
        return 1
    fi
    
    echo "$BDUSS"
    return 0
}

show_main_menu() {
    clear_screen
    echo "=== BaiduPCS-Go 主菜单 ==="
    echo "1. 账号管理"
    echo "2. 文件操作" 
    echo "3. 分享/转存"
    echo "4. 回收站"
    echo "5. 系统设置"
    echo "0. 退出"
    echo "===================="
}

show_account_menu() {
    clear_screen
    echo "=== 账号管理 ==="
    echo "1. 使用BDUSS登录"
    echo "2. 切换账号"
    echo "3. 退出账号" 
    echo "4. 显示当前账号"
    echo "5. 显示账号列表"
    echo "9. 返回主菜单"
    echo "0. 退出"
    echo "===================="
}

show_file_menu() {
    clear_screen
    echo "=== 文件操作 ==="
    echo "1. 列出文件"
    echo "2. 切换目录"
    echo "3. 下载文件/目录"
    echo "4. 上传文件/目录"
    echo "5. 创建目录"
    echo "6. 删除文件/目录"
    echo "7. 复制文件/目录"
    echo "8. 移动/重命名"
    echo "9. 返回主菜单"
    echo "0. 退出"
    echo "===================="
}

show_share_menu() {
    clear_screen
    echo "=== 分享/转存 ==="
    echo "1. 分享文件/目录"
    echo "2. 列出已分享"
    echo "3. 取消分享"
    echo "4. 转存分享文件"
    echo "9. 返回主菜单"
    echo "0. 退出"
    echo "===================="
}

show_recycle_menu() {
    clear_screen
    echo "=== 回收站 ==="
    echo "1. 列出回收站"
    echo "2. 还原文件/目录"
    echo "3. 清空回收站"
    echo "9. 返回主菜单"
    echo "0. 退出"
    echo "===================="
}

show_config_menu() {
    clear_screen
    echo "=== 系统设置 ==="
    echo "1. 显示配置"
    echo "2. 修改配置"
    echo "3. 恢复默认配置"
    echo "9. 返回主菜单"
    echo "0. 退出"
    echo "===================="
}

account_operations() {
    while true; do
        show_account_menu
        read -p "请选择操作 [0-9]: " choice
        case $choice in
            1) # 使用BDUSS登录
                clear_screen
                echo "正在从文件读取BDUSS: $BDUSS_FILE"
                BDUSS=$(read_bduss)
                if [ $? -eq 0 ]; then
                    echo "成功读取BDUSS,正在登录..."
                    BaiduPCS-Go login -bduss="$BDUSS"
                fi
                pause
                ;;
            2) # 切换账号 
                clear_screen
                BaiduPCS-Go su
                pause
                ;;
            3) # 退出账号
                clear_screen
                BaiduPCS-Go logout
                pause
                ;;
            4) # 显示当前账号
                clear_screen
                BaiduPCS-Go who
                pause
                ;;
            5) # 显示账号列表
                clear_screen
                BaiduPCS-Go loglist
                pause
                ;;
            9) # 返回主菜单
                return
                ;;
            0) # 退出
                exit 0
                ;;
            *)
                echo "无效的选择"
                pause
                ;;
        esac
    done
}

file_operations() {
    while true; do
        show_file_menu
        read -p "请选择操作 [0-9]: " choice
        case $choice in
            1) # 列出文件
                clear_screen
                read -p "请输入要列出的目录路径(直接回车列出当前目录): " path
                if [ -z "$path" ]; then
                    BaiduPCS-Go ls
                else
                    BaiduPCS-Go ls "$path"
                fi
                pause
                ;;
            2) # 切换目录
                clear_screen
                read -p "请输入要切换到的目录路径: " path
                BaiduPCS-Go cd "$path"
                pause
                ;;
            3) # 下载文件/目录
                clear_screen
                read -p "请输入要下载的文件/目录路径: " path
                BaiduPCS-Go download "$path"
                pause
                ;;
            4) # 上传文件/目录
                clear_screen
                read -p "请输入要上传的本地文件/目录路径: " local_path
                read -p "请输入要上传到的网盘目录路径: " remote_path
                BaiduPCS-Go upload "$local_path" "$remote_path"
                pause
                ;;
            5) # 创建目录
                clear_screen
                read -p "请输入要创建的目录路径: " path
                BaiduPCS-Go mkdir "$path"
                pause
                ;;
            6) # 删除文件/目录
                clear_screen
                read -p "请输入要删除的文件/目录路径: " path
                BaiduPCS-Go rm "$path"
                pause
                ;;
            7) # 复制文件/目录
                clear_screen
                read -p "请输入要复制的源文件/目录路径: " src
                read -p "请输入目标路径: " dst
                BaiduPCS-Go cp "$src" "$dst"
                pause
                ;;
            8) # 移动/重命名
                clear_screen
                read -p "请输入要移动/重命名的源文件/目录路径: " src
                read -p "请输入新路径: " dst
                BaiduPCS-Go mv "$src" "$dst"
                pause
                ;;
            9) # 返回主菜单
                return
                ;;
            0) # 退出
                exit 0
                ;;
            *)
                echo "无效的选择"
                pause
                ;;
        esac
    done
}

share_operations() {
    while true; do
        show_share_menu
        read -p "请选择操作 [0-9]: " choice
        case $choice in
            1) # 分享文件/目录
                clear_screen
                read -p "请输入要分享的文件/目录路径: " path
                BaiduPCS-Go share set "$path"
                pause
                ;;
            2) # 列出已分享
                clear_screen
                BaiduPCS-Go share list
                pause
                ;;
            3) # 取消分享
                clear_screen
                read -p "请输入要取消的分享ID: " share_id
                BaiduPCS-Go share cancel "$share_id"
                pause
                ;;
            4) # 转存分享文件
                clear_screen
                read -p "请输入分享链接: " link
                read -p "请输入提取码: " code
                BaiduPCS-Go transfer "$link" "$code"
                pause
                ;;
            9) # 返回主菜单
                return
                ;;
            0) # 退出
                exit 0
                ;;
            *)
                echo "无效的选择"
                pause
                ;;
        esac
    done
}

recycle_operations() {
    while true; do
        show_recycle_menu
        read -p "请选择操作 [0-9]: " choice
        case $choice in
            1) # 列出回收站
                clear_screen
                BaiduPCS-Go recycle list
                pause
                ;;
            2) # 还原文件/目录
                clear_screen
                read -p "请输入要还原的文件/目录fs_id: " fs_id
                BaiduPCS-Go recycle restore "$fs_id"
                pause
                ;;
            3) # 清空回收站
                clear_screen
                echo "警告:该操作将清空回收站!"
                read -p "确认要清空吗?(y/n) " confirm
                if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
                    BaiduPCS-Go recycle delete -all
                fi
                pause
                ;;
            9) # 返回主菜单
                return
                ;;
            0) # 退出
                exit 0
                ;;
            *)
                echo "无效的选择"
                pause
                ;;
        esac
    done
}

config_operations() {
    while true; do
        show_config_menu
        read -p "请选择操作 [0-9]: " choice
        case $choice in
            1) # 显示配置
                clear_screen
                BaiduPCS-Go config
                pause
                ;;
            2) # 修改配置
                clear_screen
                echo "常用配置选项:"
                echo "1) 设置下载目录: config set -savedir $DEFAULT_DOWNLOAD_DIR"  # Changed this line
                echo "2) 设置下载并发数: config set -max_parallel <数值>"
                echo "3) 设置同时下载文件数: config set -max_download_load <数值>"
                echo
                read -p "请输入完整的配置命令: " cmd
                BaiduPCS-Go $cmd
                pause
                ;;
            3) # 恢复默认配置
                clear_screen
                echo "警告:该操作将恢复所有默认配置!"
                read -p "确认要恢复吗?(y/n) " confirm
                if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
                    BaiduPCS-Go config reset
                fi
                pause
                ;;
            9) # 返回主菜单
                return
                ;;
            0) # 退出
                exit 0
                ;;
            *)
                echo "无效的选择"
                pause
                ;;
        esac
    done
}

while true; do
    show_main_menu
    read -p "请选择操作 [0-5]: " choice
    case $choice in
        1) # 账号管理
            account_operations
            ;;
        2) # 文件操作
            file_operations
            ;;
        3) # 分享/转存
            share_operations
            ;;
        4) # 回收站
            recycle_operations
            ;;
        5) # 系统设置
            config_operations
            ;;
        0) # 退出
            echo "谢谢使用,再见!"
            exit 0
            ;;
        *)
            echo "无效的选择"
            pause
            ;;
    esac
done

就喜欢用 case 明显增加代码长度~

dos2unix:

当你与遇到: 

-sh: /opt/bin/bdgo.sh: /bin/bash^M: bad interpreter: No such file or directory

剔除 Windows 换行符

dos2unix /opt/bin/bdgo.sh

类似:

sed -i 's/\r$//' /opt/bin/bdgo.sh

结束:

如果今后频繁使用,再去找到相关的应用,或起个项目用编程来实现,现在脚本是最快的方案。
 

年新快乐~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2291301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端学习路线】前端优化 详细知识点学习路径(附学习资源)

&#x1f4da;学习资源&#xff1a; 前端开发&#xff1a;零基础入门到项目实战 >> 前端开发&#xff1a;边学边练 >> 原学习路径下载 >>

【零拷贝】

目录 一&#xff1a;了解IO基础概念 二&#xff1a;数据流动的层次结构 三&#xff1a;零拷贝 1.传统IO文件读写 2.mmap 零拷贝技术 3.sendFile 零拷贝技术 一&#xff1a;了解IO基础概念 理解CPU拷贝和DMA拷贝 ​ 我们知道&#xff0c;操作系统对于内存空间&…

扩散模型(一)

在生成领域&#xff0c;迄今为止有几个主流的模型&#xff0c;分别是 GAN, VAE&#xff0c;Flow 以及 Diffusion 模型。 GAN&#xff1a;GAN 的学习机制是对抗性学习&#xff0c;通过生成器和判别器的对抗博弈来进行学习&#xff0c;这种竞争机制促使生成器不断提升生成能力&a…

【LLM-agent】(task6)构建教程编写智能体

note 构建教程编写智能体 文章目录 note一、功能需求二、相关代码&#xff08;1&#xff09;定义生成教程的目录 Action 类&#xff08;2&#xff09;定义生成教程内容的 Action 类&#xff08;3&#xff09;定义教程编写智能体&#xff08;4&#xff09;交互式操作调用教程编…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.12 连续数组:为什么contiguous这么重要?

2.12 连续数组&#xff1a;为什么contiguous这么重要&#xff1f; 目录 #mermaid-svg-wxhozKbHdFIldAkj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-wxhozKbHdFIldAkj .error-icon{fill:#552222;}#mermaid-svg-…

O3 模型正式上线,能否与 DeepSeek 一较高下?

OpenAI 最近推出了 GPT O3 模型&#xff0c;并对 ChatGPT Plus 用户的 O3-mini 版本进行了升级&#xff0c;提升了每日消息限额&#xff0c;从 50 条增加至 150 条。这一调整大大提升了用户体验&#xff0c;让更多用户有机会深入体验 O3 模型的能力。那么&#xff0c;O3 模型的…

计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

应用层概述&#xff1a; 功能&#xff1a; 常见协议 应用层与其他层的关系 网络应用模型 C/S模型&#xff1a; 优点 缺点 P2P模型&#xff1a; 优点 缺点 DNS系统&#xff1a; 基本功能 系统架构 域名空间&#xff1a; DNS 服务器 根服务器&#xff1a; 顶级域…

MATLAB的数据类型和各类数据类型转化示例

一、MATLAB的数据类型 在MATLAB中 &#xff0c;数据类型是非常重要的概念&#xff0c;因为它们决定了如何存储和操作数据。MATLAB支持数值型、字符型、字符串型、逻辑型、结构体、单元数组、数组和矩阵等多种数据类型。MATLAB 是一种动态类型语言&#xff0c;这意味着变量的数…

[SAP ABAP] SE11 / SE16N 修改标准表(慎用)

1.SE16N修改标准表 使用事务码ME16N进入到查询页面&#xff0c;填入要修改的标准表MARA&#xff0c;在事务码输入框中填入/H&#xff0c;回车之后点击按钮&#xff0c;进入Debug调试界面 把GD-SAPEDIT 与 GD-EDIT 的值更改为X然后点击按钮(快捷键按F8)进行下一步操作 可以在此…

Arduino大师练成手册 -- 控制 AS608 指纹识别模块

要在 Arduino 上控制 AS608 指纹识别模块&#xff0c;你可以按照以下步骤进行&#xff1a; 硬件连接 连接指纹模块&#xff1a;将 AS608 指纹模块与 Arduino 连接。通常&#xff0c;AS608 使用 UART 接口进行通信。你需要将 AS608 的 TX、RX、VCC 和 GND 引脚分别连接到 Ardu…

maven mysql jdk nvm node npm 环境安装

安装JDK 1.8 11 环境 maven环境安装 打开网站 下载 下载zip格式 解压 自己创建一个maven库 以后在idea 使用maven时候重新设置一下 这三个地方分别设置 这时候maven才算设置好 nvm 管理 npm nodejs nvm下载 安装 Releases coreybutler/nvm-windows GitHub 一键安装且若有…

Java实现LFU缓存策略实战

LFU算法原理在Java中示例实现集成Caffeine的W-TinyLFU策略缓存实战总结LFU与LRU稍有不同,LFU是根据数据被访问的频率来决定去留。尽管它考虑了数据的近期使用,但它不会区分数据的首次访问和后续访问,淘汰那些访问次数最少的数据。 这种缓存策略主要用来处理以下场景: 数据…

安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可查看源码&#xff09; 1.熟悉广播机制的实现流程。 2.掌握广播接收者的创建方式。 3.掌握广播的类型以及自定义官博的创建。 二、实验条件 熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有…

基于改进的强跟踪技术的扩展Consider Kalman滤波算法在无人机导航系统中的应用研究

在无人机组合导航系统中&#xff0c;精确的状态估计对于任务的成功执行至关重要。然而&#xff0c;系统面临的非线性特性和不确定性&#xff0c;如传感器的量测偏差和动态环境变化&#xff0c;常常导致传统Kalman滤波算法失效。因此&#xff0c;提出一种鲁棒且有效的滤波算法&a…

1.初识beamer

系列文章目录 初识beamer 文章目录 系列文章目录前言一、什么是beamer1.1 定义和背景1.2 使用场景1.3 Beamer优势 二、overleaf 入门beamer三、开始使用beamer3.1 新建一个beamer文件3.2 创建beamer页/帧3.3 目录页3.4 配置beamer整体风格 结束语 前言 工欲善其事&#xff0c…

DeepSeek R1本地化部署 Ollama + Chatbox 打造最强 AI 工具

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; Ollama &#x1f98b; 下载 Ollama&#x1f98b; 选择模型&#x1f98b; 运行模型&#x1f98b; 使用 && 测试 二&#xff1a;&#x1f525; Chat…

《基于Scapy的综合性网络扫描与通信工具集解析》

在网络管理和安全评估中&#xff0c;网络扫描和通信是两个至关重要的环节。Python 的 Scapy 库因其强大的网络数据包处理能力&#xff0c;成为开发和实现这些功能的理想工具。本文将介绍一个基于 Scapy 编写的 Python 脚本&#xff0c;该脚本集成了 ARP 扫描、端口扫描以及 TCP…

基于Python的药物相互作用预测模型AI构建与优化(上.文字部分)

一、引言 1.1 研究背景与意义 在临床用药过程中,药物相互作用(Drug - Drug Interaction, DDI)是一个不可忽视的重要问题。当患者同时服用两种或两种以上药物时,药物之间可能会发生相互作用,从而改变药物的疗效、增加不良反应的发生风险,甚至危及患者的生命安全。例如,…

Linux环境下的Java项目部署技巧:环境安装

安装 JDK&#xff1a; 第上传 jdk 压缩安装包到服务器 将压缩安装包解压缩&#xff1a; tar -xvf jdk-8uXXX-linux-x64.tar.gz 配置环境变量&#xff1a; 编辑 /etc/profile 文件&#xff0c;在文件末尾添加以下内容&#xff1a; export JAVA_HOME/path/to/jdk //JAVA_HOME…

【系统迁移】将系统迁移到新硬盘中(G15 5520)

文章目录 前言问题描述解决步骤&#xff08;红色为 debug 步骤&#xff09;参考文献 前言 参数&#xff1a; 电脑 dell g15 5520硬盘&#xff1a;1T 自带硬盘 海力士 2230 -> 2T 西数蓝盘 2280 问题描述 电脑硬盘过小&#xff08;且只有一个接口&#xff09;&#xff0c;将…