百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux之软连接和硬连接的区别及xargs使用技巧

nanshan 2024-10-25 13:10 14 浏览 0 评论

硬连接

硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。

  • 通过ln rumenz.txt rumenz123.txt创建
  • 不能对目录进行创建硬链接,只可对文件创建。
  • 以文件副本的形式存在,但不占用实际空间。
  • 文件名有相同的 inode 及 data block。
  • 只有在同一个文件系统中才能创建,不能交叉文件系统进行硬链接的创建。
  • 删除其中一个硬链接文件并不影响其他有相同inode号的文件。
  • 只能对已存在的文件进行创建。

适用场景

用于镜像数据文件,防止误删

软连接

软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。软链接主要应用于以下两个方面:一是方便管理,例如可以把一个复杂路径下的文件链接到一个简单路径下方便用户访问;另一方面就是解决文件系统磁盘空间不足的情况。例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接就变成了死链接。

  • ln -s rumenz.txt rumenz123.txt
  • 是以存放另一个文件的路径的形式存在。
  • 交叉文件系统创建 ,硬链接不可以。
  • 可以对目录进行链接。
  • 有自己的文件属性及权限等。
  • 可对不存在的文件或目录创建软链接。
  • 软链接可对文件或目录创建。
  • 创建软链接时,链接计数 i_nlink 不会增加。
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

img

无论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

适用场景

  • 便于文件管理,将复杂路径下的文件链接到简单路径下访问。
  • 解决某个目录空间不足的问题。

怎么查看一个文件的硬连接文件

> ls -il
total 8
1806727 -rw-r--r-- 2 root root 137 May  6 20:14 one.txt
1806727 -rw-r--r-- 2 root root 137 May  6 20:14 tow.txt

硬连接文件的inode number是一样的.可以看出由于one.txttow.txt互为硬链接, 所以他们的inode number相同.

> find / -inum 1806727

查看整个文件系统中有哪些文件是one.txt的硬连接.

怎么查看一个文件的软连接

> find -type l -exec ls -l {} \;| grep 'rumenz.txt'

知道一个软连接文件,怎么找到该文件的真实路径

// realpath 软连接文件
> realpath /etc/rc.local
/etc/rc.d/rc.local

xargs基本用法

# grep命令接受管道传参
> cat /etc/passwd | grep root

# echo命令不接受管道传参
> echo "hello rumenz" | echo

# 将标准输入转为命令行参数
> echo "hello rumenz" | xargs echo
hello rumenz

需要注意的是 xargs 后面的默认跟的是 echo 命令,所以它可以单独使用。

-d指定分隔符,默认使用空格分割

# 空格作为分隔符
$ echo "one two three" | xargs mkdir

# 指定制表符\t作为分隔符
$ echo -e "a\tb\tc" | xargs -d "\t" echo
a b c

-p打印出要执行的命令并询问用户是否要执行

> echo 'one two three' | xargs -p touch
touch one tow three ?...y

-0表示用 null 当作分隔符

find命令有一个特别的参数-print0,用来指定输出的文件列表以null作为分隔符

> find /path -type f -print0 | xargs -0 rm

指定多少行作为一个命令行参数

> xargs -L 1 find -name
"*.txt"
./1.txt
./rumenz.txt
./2.txt
./3.txt

-n指定每次将多少项作为命令行参数

> echo {0..9} | xargs -n 2  echo 

指定每一项命令行参数的替代字符串

# 将命令行参数传给多个命令
> cat foo.txt
one
two
three

> cat foo.txt | xargs -I {} sh -c 'echo {}; mkdir {}'
one
two
three

> ls
one two three

将多行输入转换成单行输入

> cat rumenz.txt
1 2 3 4
5 6
7 8 9
> cat rumenz.txt | xargs
1 2 3 4 5 6 7 8 9

将单行文本转换成多行

> cat rumenz.txt
1 2 3 4 5 6 7 8 9
> cat rumenz.txt | xargs -n 3
1 2 3
4 5 6
7 8 9

指定分隔符进行行转换

> echo "rumenz:123:rumenz:456:rumenz:789" | xargs -d : -n 2
rumenz 123
rumenz 456
rumenz 789

xargs和find结合

> find . -type f -name "*.txt" -print | xargs rm -f

批量下载文件

> cat rumenz.txt | xargs wget -c

希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、性能测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

相关推荐

使用nginx配置域名及禁止直接通过IP访问网站

前段时间刚搭建好这个网站,一直没有关注一个问题,那就是IP地址也可以访问我的网站,今天就专门研究了一下nginx配置问题,争取把这个问题研究透彻。1.nginx配置域名及禁止直接通过IP访问先来看n...

如何在 Linux 中使用 PID 号查找进程名称?

在Linux的复杂世界中,进程是系统运行的核心,每个进程都由一个唯一的「进程ID」(PID)标识。无论是系统管理员在排查失控进程,还是开发者在调试应用程序,知道如何将PID映射到对应的进程名称都是一项...

Linux服务器硬件信息查询与日常运维命令总结

1.服务器硬件信息查询1.1CPU信息查询命令功能描述示例lscpu显示CPU架构、核心数、线程数等lscpucat/proc/cpuinfo详细CPU信息(型号、缓存、频率)cat/proc/c...

Ubuntu 操作系统常用命令详解(ubuntu常用的50个命令)

UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...

从 0 到 1:打造基于 Linux 的私有 API 网关平台

在当今微服务架构盛行的时代,API网关作为服务入口和安全屏障,其重要性日益凸显。你是否想过,不依赖商业方案,完全基于开源组件,在Linux上构建一个属于自己的私有API网关平台?今天就带你...

Nginx搭建简单直播服务器(nginx 直播服务器搭建)

前言使用Nginx+Nginx-rtmp-module在Ubuntu中搭建简单的rtmp推流直播服务器。服务器环境Ubuntu16.04相关概念RTMP:RTMP协议是RealTi...

Linux连不上网?远程卡?这篇网络管理指南你不能错过!

大家好!今天咱们聊个所有Linux用户都躲不开的“老大难”——网络管理。我猜你肯定遇到过这些崩溃时刻:新装的Linux系统连不上Wi-Fi,急得直拍桌子;远程服务器SSH连不上,提示“Connecti...

7天从0到上线!手把手教你用Python Flask打造爆款Web服务

一、为什么全网开发者都在疯学Flask?在当今Web开发的战场,Flask就像一把“瑞士军刀”——轻量级架构让新手3天速成,灵活扩展能力又能支撑百万级用户项目!对比Django的“重型装甲”,Flas...

nginx配置文件详解(nginx反向代理配置详解)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务

在云计算时代,利用容器技术快速部署应用已成为开发者必备技能。本文将手把手教你在阿里云轻量应用服务器上,通过Docker高效部署Nginx并发布静态网站,全程可视化操作,新手也能轻松上手!一、准...

Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置

各位摸鱼搭子们!今天咱不聊代码里的NullPointerException,改聊点「摸鱼必备生存技能」——Nginx配置!先灵魂拷问一下:写了一堆接口却不会部署?服务器被恶意请求打崩过?静态资源加载...

如何使用 Daphne + Nginx + supervisor部署 Django

前言:从Django3.0开始支持ASGI应用程序运行,使Django完全具有异步功能。Django目前已经更新到5.0,对异步支持也越来越好。但是,异步功能将仅对在ASGI下运行的应用程序可用...

Docker命令最全详解(39个最常用命令)

Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令doc...

ubuntu中如何查看是否已经安装了nginx

在Ubuntu系统中,可以通过以下几种方法检查是否已安装Nginx:方法1:使用dpkg命令(适用于Debian/Ubuntu)bashdpkg-l|grepnginx输出...

OVN 概念与实践(德育概念的泛化在理论和实践中有什么弊端?)

今天我们来讲解OVN的概念和基础实践,要理解本篇博客的内容,需要前置学习:Linux网络设备-Bridge&VethPairLinux网络设备-Bridge详解OVS+Fa...

取消回复欢迎 发表评论: