linux 建立软连接

来源:互联网 发布:php程序员来晒工资 编辑:程序博客网 时间:2024/04/29 14:20

前段时间搞一个数据库迁移的时候:

                          由于是研发环境,直接迁移到一个已成型的服务器上,由于是直接copy的,碰到点问题,   目标服务器这个目录的空间不够,这个时候我把数据库copy到另外一个目录,在打开的时候报spfile记录的文件不对,这个时候我改好了spfile的目录,又报了数据文件不对,其实这个很简单,

                比如我原来记录的是在目录/home/oracle/a 现在到了/home/oracle/b,那原来指定的数据文件目录肯定不对,这个时候可以使用软连接,将目录替换下就好了。

直接将ln -s /home/oracle/a /home/oracle/b就可以了:

这里就是ln -s 了,我们来看下ln :

SYNOPSIS       ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)       ln [OPTION]... TARGET                  (2nd form)       ln [OPTION]... TARGET... DIRECTORY     (3rd form)       ln [OPTION]... -t DIRECTORY TARGET...  (4th form)DESCRIPTION       In  the 1st form, create a link to TARGET with the name LINK_NAME.  In the 2nd form, create a link to TARGET in       the current directory.  In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.  Create hard  links       by default, symbolic links with --symbolic.  When creating hard links, each TARGET must exist.       Mandatory arguments to long options are mandatory for short options too.       --backup[=CONTROL]              make a backup of each existing destination file       -b     like --backup but does not accept an argument       -d, -F, --directory              allow the superuser to attempt to hard link directories (note: will probably fail due to system restric-              tions, even for the superuser)       -f, --force              remove existing destination files       -n, --no-dereference              treat destination that is a symlink to a directory as if it were a normal file       -i, --interactive              prompt whether to remove destinations[oracle@db925 script]$ [oracle@db925 script]$ man lnLN(1)                            User Commands                           LN(1)NAME       ln - make links between filesSYNOPSIS       ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)       ln [OPTION]... TARGET                  (2nd form)       ln [OPTION]... TARGET... DIRECTORY     (3rd form)       ln [OPTION]... -t DIRECTORY TARGET...  (4th form)DESCRIPTION       In  the 1st form, create a link to TARGET with the name LINK_NAME.  In the 2nd form, create a link to TARGET in       the current directory.  In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.  Create hard  links       by default, symbolic links with --symbolic.  When creating hard links, each TARGET must exist.       Mandatory arguments to long options are mandatory for short options too.       --backup[=CONTROL]              make a backup of each existing destination file       -b     like --backup but does not accept an argument       -d, -F, --directory              allow the superuser to attempt to hard link directories (note: will probably fail due to system restric-              tions, even for the superuser)       -f, --force              remove existing destination files       -n, --no-dereference              treat destination that is a symlink to a directory as if it were a normal file       -i, --interactive              prompt whether to remove destinations       -s, --symbolic              make symbolic links instead of hard links       -S, --suffix=SUFFIX              override the usual backup suffix       -t, --target-directory=DIRECTORY              specify the DIRECTORY in which to create the links       -T, --no-target-directory              treat LINK_NAME as a normal file       -v, --verbose              print name of each file before linking       --help display this help and exit       --version              output version information and exit       The backup suffix is ‘~’, unless set with --suffix or SIMPLE_BACKUP_SUFFIX.  The version control method may  be       selected via the --backup option or through the VERSION_CONTROL environment variable.  Here are the values:       none, off              never make backups (even if --backup is given)       numbered, t              make numbered backups       existing, nil              numbered if numbered backups exist, simple otherwise       simple, never              always make simple backups

 

 

我们看一个测试例子:

[oracle@db925 ~]$ ln -s /home/oracle/source /home/oracle/target/u01[oracle@db925 ~]$ cd /home/oracle/source[oracle@db925 source]$ lssource.txt[oracle@db925 source]$ cd /home/oracle/target/[oracle@db925 target]$ lstarget.txt  u01[oracle@db925 target]$ ls -ltrtotal 0-rw-r--r-- 1 oracle oinstall  0 Dec  5 15:01 target.txtlrwxrwxrwx 1 oracle oinstall 19 Dec  5 15:02 u01 -> /home/oracle/source[oracle@db925 target]$ cd u01[oracle@db925 u01]$ lssource.txt


其中source 为实际存在的,而u01为虚假的目录:

 

删除软连接:

[oracle@db925 u01]$ rm -rf /home/oracle/target/u01      ---跟删除普通目录一样