当前位置: 首页 > article >正文

Linux:路径末尾加/和不加/的区别

相关阅读

Linuxicon-default.png?t=O83Ahttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm=1001.2014.3001.5482


普通文件操作

        首先说明这个问题只会出现在目录和符号链接中,因为如果想要索引普通文件但却在路径末尾加/则会出现错误,如例1所示。

# 例1
zhangchen@EDA:~$ /bin/ls/
bash: /bin/ls/: Not a directory

目录操作

        大多数情况下,路径末尾加不加/都会指向相同的对象,如例2所示。

# 例2
# 下面两者是等效的
zhangchen@EDA:~$ cd /home   
zhangchen@EDA:~$ cd /home/

命令特例 

        但有些命令对路径末尾的/非常敏感,表现出不同的行为,例如用于目录同步的rsync命令,如例3所示。 

# 例3
zhangchen@EDA:~$ rsync -a ./source ./destination  # 复制整个目录,包括目录本身
zhangchen@EDA:~$ rsync -a ./source/ ./destination # 仅复制目录内容,不包括目录本身

        当源路径目录末尾不加/时,会递归复制整个目录包括目录本身,最后的结构类似于/destination/source/...;而当源路径目录末尾加/时,会递归复制整个目录但不包括目录本身,最后的结构类似于/destination/...。

        类似地,cp命令在复制目录时也可能产生区别,如例4所示。

​# 例4
zhangchen@EDA:~$ cp -r /source /destination  # 复制整个目录,包括目录本身
zhangchen@EDA:~$ cp -r /source/ /destination # 仅复制目录内容,不包括目录本身

        当源路径目录末尾不加/时,会递归复制整个目录包括目录本身,最后的结构类似于/destination/source/...;而当源路径目录末尾加/时,会递归复制整个目录但不包括目录本身,最后的结构类似于/destination/...。

符号链接 

        对于指向目录的符号链接的处理,末尾的/也可能产生影响,如例5所示。

​# 例5
zhangchen@EDA:~$ ln -s ~/destination/ link # 建立指向目录的软链接
zhangchen@EDA:~$ ls -al link   # 显示link链接文件相关信息
lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 21 00:48 link -> /home/zhangchen/destination/
zhangchen@EDA:~$ ls -al link/  # 显示link链接指向目录中的文件(即使多个符号链接嵌套也是如此)
lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 21 00:48 link -> .
lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 21 00:48 link -> ..
lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 21 00:47 link -> test

总结

        普通文件操作:路径末尾加/会导致错误,因为文件不能当作目录使用。

        目录操作:路径末尾加不加/通常效果一样。

        命令特例:像rsync和cp等命令对路径的/结尾有特殊的处理方式,可能影响复制行为。

        符号链接:加/结尾会将符号链接当作其指向的目录处理。


http://www.kler.cn/news/319396.html

相关文章:

  • C#版Halcon:HalconDotNet最详细最全面教程(万字详细总结)
  • 算法-回溯
  • 【java入门】JDK的下载安装与环境配置,最新最详细教程!
  • ubuntu错误GPG error: http://repo.mysql.com/apt/ubuntu noble InRelease
  • 01-ZYNQ linux开发环境安装,基于Petalinux2023.2和Vitis2023.2
  • Python pyppeteer 与playwright 模拟浏览器请求 部署服务器遇到的坑
  • php发送邮箱教程:如何实现邮件发送功能?
  • 算法记录——链表
  • 【Linux基础IO】深入解析Linux基础IO缓冲区机制:提升文件操作效率的关键
  • MySQL—存储过程详解
  • 望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼
  • vue3自动暴露element-plus组件的ref
  • C# 找到给定点集的简单闭合路径(Find Simple Closed Path for a given set of points)
  • 203. 移除链表元素
  • David律所代理Jose Martin幽默水果版权首发维权,尚未TRO
  • MySQL安装教程
  • 240922-MacOS终端访问硬盘
  • C++_22_异常
  • C++:模版初阶
  • 手把手搞定VMware 的CentOS硬盘扩容
  • Unity 设计模式 之 行为型模式 -【中介者模式】【迭代器模式】【解释器模式】
  • 使用sqoop报错
  • Qt网络通信之TCP
  • Agile Modbus STM32裸机移植 从机使用
  • Django基础-创建新项目,各文件作用
  • npm install安装缓慢及npm更换源
  • 研究生三年概括
  • 【Linux实践】实验五:用户和组群账户管理
  • 充电宝哪个牌子性价比高?2024年充电宝推荐!7款好用充电宝推荐
  • 计算机毕业设计 校园新闻管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解