【ARM-Linux开发】Linux链接 -ln

178 篇文章 37 订阅 ¥39.90 ¥99.00

ln命令是Linux中的一个非常重要的命令,它为一个文件在另一位置创建同步链接,有两种:符号链接和硬链接。

【ln命令详解】ln [options] source dist

常用参数:

-f : 链接时先将与 dist 同名的文件删除 
-d : 允许系统管理者硬链结自己的目录 
-i : 在删除与 dist 同名的文件时先进行询问 
-n : 在进行软链接时,将 dist 视为一般的文件 
-s : 进行软链接(symbolic link) 
-v : 在连结之前显示其档名 
-b : 将在链结时会被覆写或删除的档案进行备份

一.符号链接(symbolic link):

只是在某一位置上对指定文件的一个镜像,是该文件的位置信息,会保持链接的同步性,可在不同的文件系统之间进行符号链接

1.先创建一个文本文件1.txt:touch命令创建一个空文本文件

image

2.创建1.txt的符号链接(软链接):

image

3.再查看:

image

该目录下多了2.txt而且是粗体。

image

这里看2.txt和1.txt的权限,以及大小。这时1.txt是空文本,而2.txt是有内容的

4.向1.txt中随便写入内容再查看:

image

注:1.txt与2.txt的inode号不同,因为2.txt是1.txt的符号链接,是1.txt的引用,2.txt中保存1.txt的位置信息,所以当1.txt为空时,2.txt仍有5个字节的大小,且当1.txt中由内容时,2.txt大小并不变。

linux系统通过inode来检索标识文件

2.txt文件类型是:符号链接文件,权限为:对所有用户都有读,写和执行的权限。

二.硬链接(hard link):

1.创建到1.txt到3.txt的硬链接:

image

注:1.txt与3.txt的inode相同,与符号链接不同。而且1.txt与3.txt大小文件权限属性相同,说明3.txt是1.txt的另一个名称(存在)。

2.readlink查看链接的目标文件:

image

3.改变2.txt为3.txt的链接文件:

image 

创建到3.txt的符号链接2.txt,若该目录下有文件2.txt则覆盖

image

硬链接的两个限制:

1.不能创建到目录的硬链接

2.只有在同一个文件系统的文件之间才能创建硬链接

也可以对多个文件创建链接到某一目录:

ln -[f|n] [s] file1 dir1/file2 dir;会在dir目录下创建file1,file2两个链接文件

-f:若dir中已存在文件file1或file2,则会覆盖已存在文件,替换为要创建的文件

-n:若已存在目标路径,则系统报错,不会创建链接

三.链接产生的原因或链接存在的作用:

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。而且在任何一个目录下改变该文件,都会在同步到其他目录下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sudo make install Making install in libfcgi make[1]: Entering directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' make[2]: Entering directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' test -z "/home/yk/fcgi/lib" || mkdir -p -- "/home/yk/fcgi/lib" /bin/bash ../libtool --mode=install /usr/bin/install -c 'libfcgi.la' '/home/yk/fcgi/lib/libfcgi.la' /usr/bin/install -c .libs/libfcgi.so.0.0.0 /home/yk/fcgi/lib/libfcgi.so.0.0.0 (cd /home/yk/fcgi/lib && { ln -s -f libfcgi.so.0.0.0 libfcgi.so.0 || { rm -f libfcgi.so.0 && ln -s libfcgi.so.0.0.0 libfcgi.so.0; }; }) (cd /home/yk/fcgi/lib && { ln -s -f libfcgi.so.0.0.0 libfcgi.so || { rm -f libfcgi.so && ln -s libfcgi.so.0.0.0 libfcgi.so; }; }) /usr/bin/install -c .libs/libfcgi.lai /home/yk/fcgi/lib/libfcgi.la /usr/bin/install -c .libs/libfcgi.a /home/yk/fcgi/lib/libfcgi.a chmod 644 /home/yk/fcgi/lib/libfcgi.a arm-xilinx-linux-gnueabi-ranlib /home/yk/fcgi/lib/libfcgi.a ../libtool: line 6556: arm-xilinx-linux-gnueabi-ranlib: command not found /bin/bash ../libtool --mode=install /usr/bin/install -c 'libfcgi++.la' '/home/yk/fcgi/lib/libfcgi++.la' libtool: install: warning: relinking `libfcgi++.la' (cd /home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi; /bin/bash ../libtool --tag=CXX --mode=relink arm-xilinx-linux-gnueabi-g++ -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi -O2 -pipe -g -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o libfcgi++.la -lfcgi -rpath /home/yk/fcgi/lib fcgio.lo ) arm-xilinx-linux-gnueabi-g++ -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi -shared -nostdlib /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/crti.o /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/arm-xilinx-linux-gnueabi/8.2.0/crtbeginS.o .libs/fcgio.o -Wl,--rpath -Wl,/home/yk/fcgi/lib -L/home/yk/fcgi/lib -lfcgi -L/home/yk/sdk/sysroots/x86_64-petalinux-linux/usr/lib/arm-xilinx-linux-gnueabi/gcc/arm-xilinx-linux-gnueabi/8.2.0 -L/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/lib -L/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/arm-xilinx-linux-gnueabi/8.2.0 -L/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib -lstdc++ -lm -lc -lgcc_s /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/arm-xilinx-linux-gnueabi/8.2.0/crtendS.o /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/crtn.o -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-soname -Wl,libfcgi++.so.0 -o .libs/libfcgi++.so.0.0.0 ../libtool: line 4501: arm-xilinx-linux-gnueabi-g++: command not found libtool: install: error: relink `libfcgi++.la' with the above command before installing it Makefile:256: recipe for target 'install-libLTLIBRARIES' failed make[2]: *** [install-libLTLIBRARIES] Error 1 make[2]: Leaving directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' Makefile:459: recipe for target 'install-am' failed make[1]: *** [install-am] Error 2 make[1]: Leaving directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' Makefile:373: recipe for target 'install-recursive' failed make: *** [install-recursive] Error 1
07-21

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值