当前位置: 首页 > 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/a/319396.html

相关文章:

  • MySQL Workbench导入数据比mysql命令行慢
  • MYSQL 库,表 基本操作
  • 灰狼优化算法
  • 系统架构设计师论文
  • 【Java SE】接口类型
  • 同三维T610UDP-4K60 4K60 DP或HDMI或手机信号采集卡
  • 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硬盘扩容