如何解决使用文件夹提取文件,然后使用 bash 完成
我不怎么使用 bash 脚本,我正在尝试做这样的事情:
#!/bin/bash
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-i686-static.tar.xz
tar xvf ffmpeg-git-i686-static.tar.xz
cd ./ffmpeg-git-20210501-i686-static/
cp ./ffmpeg-git-20210501-i686-static/ffmpeg /etc/bin
是否有变量或方法可以确定在脚本执行期间调用的提取文件夹。例如,在命令行中使用 bash 完成我会使用 cd ./ffmpeg(因为我知道它以 ffmpeg 开头)
有意义吗?
解决方法
事先无法知道目录结构,但可以在复制命令中使用通配符:
cp ./*/ffmpeg /etc/bin
虽然,我不建议在 /etc/bin
中安装 tarball 提取的可执行文件。
我会在 /usr/local/bin/
中放置一个符号链接:
#!/usr/bin/env sh
__opwd="$PWD"
trap 'cd "$__opwd"' EXIT ABRT INT
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-i686-static.tar.xz || exit 1
# Create place where to install the unpacked archive
mkdir -p '/opt/ffmpeg-git-i686-static' || exit 1
# Unpack the archive
cd '/opt/ffmpeg-git-i686-static' || exit 1
tar xf "$__opwd/ffmpeg-git-i686-static.tar.xz" || exit 1
# Create a symbolic link from the ffmpeg command into `/usr/local/bin/`
ln -sf /opt/ffmpeg-git-i686-static/*/ffmpeg /usr/local/bin/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。