简介
A
ab
accept
ack
ag
alias
apachectl
apk
apropos
apt-get
aptitude
apt-key
apt-sortpkgs
ar
arch
arj
arp
arpd
arping
arptables
arpwatch
as
at
atop
atq
atrm
awk
axel
B
badblocks
base64
basename
batch
bc
bg
bind
blkid
blockdev
bmodinfo
break
builtin
bunzip2
bye
bzcat
bzcmp
bzdiff
bzgrep
bzip2
bzip2recover
bzless
bzmore
C
cal
cancel
cat
cd
cdrecord
chage
chattr
chcon
chfn
chgrp
chkconfig
chmod
chown
chpasswd
chroot
chsh
cksum
clear
clock
clockdiff
cmp
col
colrm
column
comm
command
compress
consoletype
continue
convertquota
cp
cpio
createrepo
crontab
csplit
cu
cupsdisable
cupsenable
curl
cut
D
date
dc
dd
declare
depmod
df
dhclient
dhcpd
dhcrelay
diff
diff3
diffstat
dig
dircolors
dirname
dirs
disown
dmesg
dmidecode
dnf
dnsdomainname
docker
domainname
dos2unix
dpkg-deb
dpkg-divert
dpkg-preconfigure
dpkg-query
dpkg-reconfigure
dpkg-split
dpkg-statoverride
dpkg-trigger
dpkg
dris
dstat
du
dump
E
e2fsck
e2label
echo
ed
edquota
egrep
eject
elinks
elm
emacs
enable
env
ethtool
ex
exec
exit
expand
export
exportfs
expr
F
false
fc
fdisk
fg
fgrep
file
find
findfs
finger
firewall-cmd
fishshell
fmt
fold
fping
free
fsck
ftp
ftpcount
ftpshut
ftptop
ftpwho
fuser
G
gcc
gcov
gdb
get_module
getenforce
getent
getsebool
git
gpasswd
gpm
grep
groupadd
groupdel
groupmems
groupmod
groups
grpck
grpconv
grpunconv
grub
grub2-mkconfig
grub2-set-default
gunzip
gzexe
gzip
H
halt
hcitool
hdparm
head
help
hexdump
history
host
hostid
hostname
hostnamectl
hping3
htdigest
htop
htpasswd
hwclock
I
iconv
id
ifcfg
ifconfig
ifdown
ifstat
iftop
ifup
indent
info
init
inotifywait
insmod
install
iostat
iotop
ip
ip6tables-restore
ip6tables-save
ip6tables
ipcalc
ipcrm
ipcs
iperf
iptables-restore
iptables-save
iptables
iptraf
iptstate
iscsiadm
ispell
J
jed
jobs
joe
join
journalctl
jq
jwhois
K
kernelversion
kexec
kill
killall
L
last
lastb
lastlog
ld
ldconfig
ldd
less
let
lftp
lftpget
lha
lilo
ln
lnstat
local
locate
logger
login
logname
logout
logrotate
logsave
logwatch
look
losetup
lp
lpadmin
lpc
lpq
lpr
lprm
lpstat
ls
lsattr
lsb_release
lsblk
lscpu
lsmod
lsof
lspci
lsusb
ltrace
lvcreate
lvdisplay
lvextend
lvreduce
lvremove
lvresize
lvscan
lynx
M
mail
mailq
mailstat
make
man
mapfile
md5sum
mesg
mii-tool
mkbootdisk
mkcert
mkdir
mke2fs
mkfs
mkinitrd
mkisofs
mknod
mkswap
mktemp
modetest
modprobe
more
mount
mpstat
mtools
mtr
mv
mysql
mysqladmin
mysqldump
mysqlimport
mysqlshow
N
named-checkzone
nano
nc
ncftp
neofetch
nethogs
netstat
newusers
nfsstat
ngrep
nice
nisdomainname
nl
nm
nmap
nmcli
nohup
nologin
nproc
nslookup
ntpdate
ntsysv
O
objdump
od
openssl
P
pacman
parted
partprobe
passwd
paste
patch
pathchk
perl
pfctl
pgrep
php
pico
pidof
pidstat
pigz
ping
ping6
pip
pkexec
pkill
pmap
popd
poweroff
ppp-off
pr
printf
protoize
prtstat
ps
pssh
pstack
pstree
pushd
pv
pvchange
pvck
pvcreate
pvdisplay
pvremove
pvs
pvscan
pwck
pwconv
pwd
pwdx
pwunconv
Q
quota
quotacheck
quotaoff
quotaon
R
rcconf
rcp
read
readelf
readonly
reboot
reject
rename
renice
reposync
repquota
resize
restore
restorecon
return
rev
rexec
rlogin
rm
rmdir
rmmod
route
rpm
rpm2cpio
rpmbuild
rpmdb
rpmquery
rpmsign
rpmverify
rsh
rsync
runlevel
S
sar
scp
screen
script
scriptreplay
sed
seinfo
semanage
sendmail
seq
service
sesearch
set
setfacl
setpci
setsebool
setsid
sftp-server
sftp
sh
sha256sum
shift
shopt
showmount
shuf
shutdown
skill
slabtop
sleep
slocate
smartmontools
smbclient
smbpasswd
sort
source
speedtest-cli
spell
split
squid
squidclient
ss
ssh-add
ssh-agent
ssh-copy-id
ssh-keygen
ssh-keyscan
ssh
sshd
sshpass
startx
stat
strace
strings
stty
su
sudo
sum
supervisord
suspend
swapoff
swapon
sync
sysctl
syslog
systemctl
systool
T
tac
tail
tailf
talk
tar
tcpdump
tcpreplay
tee
telinit
telnet
tempfile
test
tftp
time
timedatectl
times
tload
tmux
top
touch
tput
tr
tracepath
traceroute
trap
tree
true
tty
type
U
ulimit
umask
umount
unalias
uname
unarj
uncompress
unexpand
uniq
unlink
unprotoize
unrar
unset
unzip
updatedb
uptime
useradd
userdel
usermod
usernetctl
users
uucico
uupick
uuto
V
vdfuse
vgchange
vgconvert
vgcreate
vgdisplay
vgextend
vgreduce
vgremove
vgrename
vgscan
vi
vmstat
volname
W
w
wait
wall
watch
wc
wget
whatis
whereis
which
who
whoami
write
X
xargs
xauth
xclip
xhost
xinit
xlsatoms
xlsclients
xlsfonts
xrandr
xset
xz
Y
yes
ypdomainname
yum
Z
zcat
zfore
zip
zipinfo
zipsplit
znew
其他
7z
ln - Linux命令大全 - 笔下光年
网站首页
ln
用来为文件创建链接 ## 补充说明 **ln命令** 用来为文件创建链接,链接类型分为硬链接和符号链接两种,默认的链接类型是硬链接。如果要创建符号链接必须使用"-s"选项。 注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。 ### 语法 ```shell ln [选项]... [-T] 目标 链接名 (第一种格式) 或:ln [选项]... 目标 (第二种格式) 或:ln [选项]... 目标... 目录 (第三种格式) 或:ln [选项]... -t 目录 目标... (第四种格式) ``` ### 选项 ```shell --backup[=CONTROL] # 为每个已存在的目标文件创建备份文件 -b # 类似--backup,但不接受任何参数 -d, -F, --directory # 创建指向目录的硬链接(只适用于超级用户) -f, --force # 强行删除任何已存在的目标文件 -i, --interactive # 覆盖既有文件之前先询问用户 -L, --logical # 取消引用作为符号链接的目标 -n, --no-dereference # 把符号链接的目的目录视为一般文件 -P, --physical # 直接将硬链接到符号链接 -r, --relative # 创建相对于链接位置的符号链接 -s, --symbolic # 对源文件建立符号链接,而非硬链接 -S, --suffix=SUFFIX # 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它 -t, --target-directory=DIRECTORY # 指定要在其中创建链接的DIRECTORY -T, --no-target-directory # 将“LINK_NAME”视为常规文件 -v, --verbose # 打印每个链接文件的名称 --help # 显示此帮助信息并退出 --version # 显示版本信息并退出 ``` ### 参数 * 源文件:指定链接的源文件。如果使用`-s`选项创建符号链接,则“源文件”可以是文件或者目录。创建硬链接时,则“源文件”参数只能是文件。 * 目标文件:指定源文件的目标链接文件。 ```shell none, off # 不进行备份(即使使用了--backup 选项) numbered, t # 备份文件加上数字进行排序 existing, nil # 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份 simple, never # 永远使用普通方式备份 ``` ### 实例 将目录`/usr/mengqc/mub1` 下的文件 m2.c 链接到目录 `/usr/liu` 下的文件 a2.c ```shell cd /usr/mengqc ln mub1/m2.c /usr/liu/a2.c ``` 在执行ln命令之前,目录`/usr/liu`中不存在a2.c文件。执行ln之后,在`/usr/liu`目录中才有a2.c这一项,表明m2.c和a2.c链接起来(注意,二者在物理上是同一文件),利用`ls -l`命令可以看到链接数的变化。 **创建软链接** 在目录`/usr/liu`下建立一个符号链接文件abc,使它指向目录`/usr/mengqc/mub1` ```shell ln -s /usr/mengqc/mub1 /usr/liu/abc ``` 执行该命令后,`/usr/mengqc/mub1`代表的路径将存放在名为`/usr/liu/abc`的文件中。 **创建硬链接** 给文件创建硬链接,为 `log2022.log` 创建硬链接 `ln2022`,`log2022.log` 与 `ln2022` 的各项属性相同 ```shell ln log2022.log ln2022 ``` 输出: ``` [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2022.log -rw-r--r-- 1 root bin 61 11-13 06:03 log2022.log [root@localhost test]# ln log2022.log ln2022 [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2022.log -rw-r--r-- 2 root bin 61 11-13 06:03 ln2022 -rw-r--r-- 2 root bin 61 11-13 06:03 log2022.log ``` ## 扩展知识 Linux具有为一个文件起多个名字的功能,称为链接。被链接的文件可以存放在相同的目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份。另外,被链接的文件也可以有相同的文件名,但是存放在不同的目录下,这样只要对一个目录下的该文件进行修改,就可以完成对所有目录下同名链接文件的修改。对于某个文件的各链接文件,我们可以给它们指定不同的存取权限,以控制对信息的共享和增强安全性。 文件链接有两种形式,即硬链接和符号链接。 ln功能说明:是为某一个文件在另外一个位置建立一个同步的链接,当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 > :warning: ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化。 ### 软链接: 1. 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 2. 软链接可以 跨文件系统 ,硬链接不可以 3. 软链接可以对一个不存在的文件名进行链接 4. 软链接可以对目录进行链接 ### 硬链接 建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在多个目录中。如下所示的m2.c文件就在目录mub1和liu中都建立了目录项。 1. 硬链接,以文件副本的形式存在。但不占用实际空间。 2. 不允许给目录创建硬链接 3. 硬链接只有在同一个文件系统中才能创建 ```shell ls -ailR .: total 16 922730 drwxr-xr-x 4 root root 4096 Jun 17 11:18 . 393217 drwxrwxrwt. 9 root root 4096 Jun 17 11:19 .. 922733 drwxr-xr-x 2 root root 4096 Jun 17 11:18 liu 922731 -rw-r--r-- 3 root root 0 Jun 17 11:18 m2.c 922732 drwxr-xr-x 2 root root 4096 Jun 17 11:18 mub1 ./liu: total 8 922733 drwxr-xr-x 2 root root 4096 Jun 17 11:18 . 922730 drwxr-xr-x 4 root root 4096 Jun 17 11:18 .. 922731 -rw-r--r-- 3 root root 0 Jun 17 11:18 m2.c ./mub1: total 8 922732 drwxr-xr-x 2 root root 4096 Jun 17 11:18 . 922730 drwxr-xr-x 4 root root 4096 Jun 17 11:18 .. 922731 -rw-r--r-- 3 root root 0 Jun 17 11:18 m2.c ``` 创建硬链接后,己经存在的文件的索引节点号(inode)会被多个目录文件项使用。一个文件的硬链接数可以在目录的长列表格式的第二列中看到,无额外链接的文件的链接数为1。 在默认情况下,ln命令创建硬链接。ln命令会增加链接数,rm命令会减少链接数。一个文件除非链接数为0,否则不会从文件系统中被物理地删除。 对硬链接有如下限制: * 不能对目录文件做硬链接。 * 不能在不同的文件系统之间做硬链接。就是说,链接文件和被链接文件必须位于同一个文件系统中。 ### 符号链接(软连接) 符号链接也称为软链接,是将一个路径名链接到一个文件。这些文件是一种特别类型的文件。事实上,它只是一个文本文件(如下所示的abc文件),其中包含它提供链接的另一个文件的路径名,如虚线箭头所示。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于符号链接时,将沿着链接方向前进来访问实际的文件。 ```shell $ ls -il total 0 922736 lrwxrwxrwx 1 root root 5 Jun 17 11:27 abc -> a.txt 922735 -rw-r--r-- 1 root root 0 Jun 17 11:27 a.txt ``` 与硬链接不同的是,符号链接确实是一个新文件,当然它具有不同的索引节点号;而硬链接并没有建立新文件。 符号链接没有硬链接的限制,可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接。 用`ln -s`命令建立符号链接时,源文件最好用绝对路径名。这样可以在任何工作目录下进行符号链接。而当源文件用相对路径时,如果当前的工作路径与要创建的符号链接文件所在路径不同,就不能进行链接。 符号链接保持了链接与源文件或目录之间的区别: * 删除源文件或目录,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据。 * 在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l。 * 符号链接的大小是其链接文件的路径名中的字节数。 * 当用`ls -l`命令列出文件时,可以看到符号链接名后有一个箭头指向源文件或目录,例如`lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file`其中,表示“文件大小”的数字“14”恰好说明源文件名`original_file`由14个字符构成。
上一篇:
lilo
下一篇:
lnstat