我应该把我的bash脚本放在哪里

我有一些非常简单的bash脚本,我拼凑起来做我经常做的事情。 其中之一是运行duplicity来执行我的备份任务。 没有什么聪明只是一堆if .. then语句真的。 因为这需要以sudo的forms运行,所以最好将我的脚本放在/ usr / bin(或PATH中的其他位置),chown到root.root和chmod到700?

我将自己的脚本保存在/opt/scripts

如果您的脚本应该由每个系统用户执行,则可以创建指向/usr/bin的符号链接。

如果只有root应该执行脚本,则可以创建指向/usr/sbin的符号链接。

/usr/bin/添加符号链接的命令:

 ln -s /opt/scripts/ 

您可以执行该脚本,因为默认情况下/usr/bin/在您的PATH中

如果您以外没有其他用户使用这些脚本:

然后你可以将它们保存在/home/$USER/bin 。 如果bin文件夹不存在则创建bin文件夹并将文件移动到那里。 您家中的bin文件夹将自动添加到PATH环境变量中。 代码在.profile

 # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi 

请参阅如何将/ home / username / bin添加到$ PATH?

或者在某些系统中,它可能位于.bashrc

 export PATH=${HOME}/bin/:${HOME}/.local/bin:${PATH} 

谢谢Elder Geek

如果这些脚本将由其他用户使用:

然后/usr/local/bin/opt/bin都是不错的选择。 请参阅是否有放置自定义Linux脚本的标准位置?

希望这可以帮助

我有一个目录,用于快速收集我在/usr/local/apollo各种计算机上部署的本地工具或东西。 这个目录有分支,用于flagsbinlogs

对于我在默认apt-get存储库之外下载和安装的应用程序,应用程序名称放在/opt/和目录中,并为应用程序的特定版本添加一个子目录。 这样我的vlceclipse等应用程序的编译版本就不会与分布式版本冲突。

我对/opt使用是它基本上正式设计的方式。

顺便说一句,目录/usr/local/bin/usr/local/apollo/opt在新的操作系统版本安装覆盖中幸存。