如果我有一个自定义的shell脚本或程序,是我自己创建的或从web下载的,并且我希望能够从CLI执行它,那么在Linux/Unix目录 struct 中是否有标准的位置来放置它?

/usr/bin ?
/usr/local/bin ?
/usr/lib ?
/usr/sbin ?
/bin ?
/sbin ?
/var ?

我通常把它放在我的~/bin文件夹下,然后放在路径中,但它看起来并不干净.每次我下载一个新程序,我都要把它重新放到路径上.

推荐答案

/usr/local/bin的存在正是为了这个目的,用于系统范围的安装.对于你自己的私有使用,~/bin是事实上的标准.

如果你想把每个二进制文件保存在它自己的子目录中,你可以这样做,并在你的PATH中已经存在的目录中添加一个符号链接.比如说

curl -o $HOME/downloads/fnord http://fnord.example.com/script.exe
ln -s $HOME/downloads/fnord $HOME/bin/

假设你的PATH中有$HOME/bin.(有像stow这样的工具可以在幕后为您实现这一点,甚至更多.)

Linux相关问答推荐

Linux和Windows x86程序集调用约定

C++调试器如何知道如何在源代码和可执行文件之间映射行?

在 bash 脚本中保持两个进程处于活动状态(并在死亡时重生它们)

如何过滤 Bash 的正则表达式(Linux)中的所有值,除了一个?

如何在 ERE 中结束这个正则表达式

如何使用 ftrace 过滤查看函数上方的调用堆栈?

什么命令用于在linux中创建或修改具有指定文件大小的多个文件

为什么 8 位字符串文字可以包含多字节字符,而 char 向量不能?

Docker 容器立即退出

KDE 桌面效果中的 OpenGL 和 XRender 有什么区别?

有没有办法在整个项目代码中的某个日期之后找出更改的文件?

加密/解密在两个不同的 openssl 版本之间不能很好地工作

将 CMake 项目导入 Eclipse CDT

Monit 守护程序 - 连接到 monit 守护程序时出错

如何获取/使用 LibUUID?

try 使用 sudo 将文件附加到根拥有的文件时权限被拒绝

Linux上C中的标准输出线程安全?

如何从 shell 确定当前的 CPU 利用率?

如何在 Linux 中将 .so 文件添加到 java.library.path

将 BlueZ Stack 用作外设(广告商)