微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用文件夹提取文件,然后使用 bash 完成

如何解决使用文件夹提取文件,然后使用 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 举报,一经查实,本站将立刻删除。