Linux创建软链接命令-ln -s

时间:2021-11-16 10:31:48

这是Linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,
 
具体用法是:ln -s 源文件 目标文件。

当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less

-s 是代号(symbolic)的意思。

这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
 
如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了。
 
演示一个实战例子: 

bash: sqlplus: command not found 解决方法 
环境变量已经配好,但是仍报错:
 
[Oracle@dg1 ~]$ vi .bash_profile
 
# .bash_profile
 
# Get the aliases and functions
 if [ -f ~/.bashrc ]; then
        . ~/.bashrc
 fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/bin
 
export PATH
 unset USERNAME
 

export EDITOR=vi
 export ORACLE_SID=dg1
 export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
 export PATH=/u01/app/oracle/product/10.2.0/db_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
 export PATH=$ORACLE_HOME/bin:$PATH
 umask 022
 
解决方法:
 
[oracle@dg1 ~]$ sqlplus /nolog
 bash: sqlplus: command not found
 [oracle@dg1 ~]$ ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
 ln: creating symbolic link `/usr/bin/sqlplus' to `/bin/sqlplus': Permission deni ed
 [oracle@dg1 ~]$ su - root
 Password:
 [root@dg1 ~]# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
 [root@dg1 ~]# su - oracle
 [oracle@dg1 ~]$ sqlplus /nolog
 
SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 11 12:51:24 2009
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
SQL> conn / as sysdba
 Connected to an idle instance.
 SQL> startup
 ORACLE instance started.
 
Total System Global Area  167772160 bytes
 Fixed Size                  1218316 bytes
 Variable Size              79694068 bytes
 Database Buffers          83886080 bytes
 Redo Buffers                2973696 bytes
 Database mounted.
 Database opened.
 SQL>