linux下删除文件夹的软链接时注意千万不能在后面加反斜杠,千万不要用强制删除,否则下面2种场景,你会把源文件删除,要闯祸的
今天遇到一个坑,自己在子目录下创建了父目录的软链接,导致可以无限循环进入父目录
[clouder@ana53 dir1]$ ll
total 8
-rw-rw-r-- 1 clouder clouder 4 Oct 9 17:49 a.txt
-rw-rw-r-- 1 clouder clouder 4 Oct 9 17:49 b.txt
lrwxrwxrwx 1 clouder clouder 10 Oct 9 17:49 dir1 -> /tmp/dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ cd dir1/
[clouder@ana53 dir1]$ ls
a.txt b.txt dir1
[clouder@ana53 dir1]$ pwd
/tmp/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1
然后想把这个软链接删除,于是在终端输入
linux终端下,常利用自动补全功能,输入部分文件名,如di,然后按tab键,自动补全,结果自己带上了后面的反斜杠;
然后 被告知这是个文件夹
[clouder@ana53 dir1]$ rm dir1/
rm: cannot remove ‘dir1/’: Is a directory
于是我加上-rf (f表示强制r表示删除递归删除,用于删除文件夹)
结果悲剧了,当文件夹dir1的软链接dir1在原文件的子目录,则rm -rf 软链接目录也会把源文件删除!!!
[clouder@ana53 dir1]$ rm -rf dir1/
[clouder@ana53 dir1]$ ll
total 0
下面做一个实验,在另外一个目录dir2下创建dir1的软链接,强制删除软链接:rm -f dir1 也会把源目录删除!!!
准备源目录dir1,里面有a.txt , b.txt文件
[clouder@ana53 tmp]$ cd dir1/
[clouder@ana53 dir1]$ echo 'aaa'>a.txt
[clouder@ana53 dir1]$ echo 'aaa'>b.txt
[clouder@ana53 dir1]$ ll
total 8
-rw-rw-r-- 1 clouder clouder 4 Oct 9 17:26 a.txt
-rw-rw-r-- 1 clouder clouder 4 Oct 9 17:26 b.txt
进入目标目录/tmp/dir2,创建/tmp/dir1目录的软链接
[clouder@ana53 dir1]$ cd ../dir2
[clouder@ana53 dir2]$ ll
total 0
[clouder@ana53 dir2]$ ln -s /tmp/dir1 .
[clouder@ana53 dir2]$ ll
total 0
lrwxrwxrwx 1 clouder clouder 9 Oct 9 17:26 dir1 -> /tmp/dir1
用file命令查看文件类型,注意软链接目录没带反斜杠是链接
[clouder@ana53 dir2]$ file dir1
dir1: symbolic link to `/tmp/dir1'
删除目录的软链接文件成功(此处因为我用命令别名alias rm='rm -i' ,所以在我本机用rm命令时,都会提示是否确认删除)
[clouder@ana53 dir2]$ rm dir1
rm: remove symbolic link ‘dir1’? y
[clouder@ana53 dir2]$ ls
[clouder@ana53 dir2]$ ls /tmp/dir1/
a.txt b.txt
在创建一个软链接
[clouder@ana53 dir2]$ ln -s /tmp/dir1/ .
[clouder@ana53 dir2]$ ll
total 0
lrwxrwxrwx 1 clouder clouder 10 Oct 9 17:27 dir1 -> /tmp/dir1/
file命令查看dir1/ 是什么类型,软链接目录带了反斜杠就当成目录了
[clouder@ana53 dir2]$ file dir1/
dir1/: directory
删除软链接目录提示这是一个文件夹
[clouder@ana53 dir2]$ rm dir1/
rm: cannot remove ‘dir1/’: Is a directory
强制删除软链接目录(文件夹)没有成功
[clouder@ana53 dir2]$ rm dir1/ -rf
[clouder@ana53 dir2]$ ll
total 0
lrwxrwxrwx 1 clouder clouder 10 Oct 9 17:27 dir1 -> /tmp/dir1/
强制删除软链接目录提示这是一个目录
[clouder@ana53 dir2]$ rm -f dir1/
rm: cannot remove ‘dir1/’: Is a directory
强制删除软链接文件,结果把原始文件给删了!!!
[clouder@ana53 dir2]$ rm -f dir1
[clouder@ana53 dir2]$ ll
total 0
[clouder@ana53 dir2]$ ll /tmp/dir1/
total 0
linux下删除文件夹的软链接时注意千万不能在后面加反斜杠,千万不要用强制删除,否则下面2种场景,你会把源文件删除,要闯祸的的更多相关文章
- linux下各文件夹的结构说明及用途介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /ho ...
- 【转】linux下各文件夹的结构说明及用途介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- Linux下各文件夹的结构说明及用途介绍(转载)
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- linux下各文件夹的结构说明及用途介绍:Linux目录结构介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- 【转载】Linux下各文件夹的含义和用途
原文地址:https://www.cnblogs.com/lanqingzhou/p/8037269.html Linux下各文件夹的含义和用途 Linux根目录”/“下各个系统文件夹的含义和用途 1 ...
- Linux下的文件夹创建命令使用实践
[文章摘要] 本文以实际的C源程序为样例,介绍了Linux下的文件夹创建命令(mkdir)的用法.为相关开发工作的开展提供了故意的參考. [关键词] C语言 Linux 文件夹创建 makefi ...
- Linux下tmp文件夹的文件自动删除的问题(转)
场景: 近日发现有一台机器tmp文件夹下放置的文件无辜丢失,而且排查发现是自动丢失,并且,只是删除10天之前的文件. 本来以为是哪位写了一个自动执行脚本, find了一下10天前的文件删除了. 结果, ...
- (转载)linux下各个文件夹的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...
- linux 下各文件夹的功能性介绍。(转载)
原文来自:http://www.cnblogs.com/wen858636827/archive/2012/12/26/2834373.html /opt 放置用户自己下载的软件 英文全称是op ...
- Linux下一些文件夹的含义
在 Linux系统里面,"分区",被称作"挂载点",简单明了的说,"挂载点"意思就是:把一部分硬盘容量,"分"成一个文件 ...
随机推荐
- Springboot+Mybatis:启动报错 String index out of range: -37
springBoot+Druid+Mybatis :启动错误描述 Error parsing SQL Mapper Configuration. Cause: java.lang.StringInde ...
- 【每日一题】【使用list&使用辅助栈实现】2022年2月11日-NC90 包含min函数的栈
描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop.top 和 min 函数操作时,栈中一定有元素. 此栈包含的方法有:push(value): ...
- 【大数据面试】sqoop:空值、数据一致性、列式存储导出、数据量、数据倾斜
一.有没有遇到过问题,怎么进行解决的 1.空值问题 本质:hive底层存储空数据使用\n<==>MySQL存储空数据使用null 解决:双向导入均分别使用两个参数☆,之前讲过 2.数据一致 ...
- js逆向之补环境常用代码
//第一种 补环境的方法 let test1 = { name:"小红" }; test = new Proxy(test1,{ get(target,key){ console. ...
- CCS选择器 选择器优先级 选择器常见属性
目录 CSS前戏 1.css语法结构 2.css注释语法 3.引入css的多种方式 CSS基本选择器 1.标签选择器 2.类选择器 3.id选择器 4.通用选择器 CSS组合选择器 1.后代选择器(空 ...
- get请求拼接数组转字符串
get请求拼接数组转换成字符串
- HNCTF的pyjail做题过程详解
简述: 因为本人对python的内置函数理解也不是深入,在做题过程中也是靠着出题人的hint和google大法才做出来几题,详细的解题过程和知识点讲解可以看一下春哥的知乎,[PyJail] pytho ...
- 浅谈promise对象
背景: 最近项目在做小程序的开发,涉及设计一个统一的登录公共方法,当实现时涉及到多个异步请求,那么问题来了,如何让多个异步请求先后同步进行呢?很多人会想到使用多层嵌套套来实现,就像这样: functi ...
- [python] 基于chardet识别字符编码
对于人类能够识别的字符,计算机会根据某一对应关系将其转换为二进制形式进行保存.这个对应关系就是字符编码表,即什么样的字符对应什么样的二进制编码.这种字符编码表往往是多种多样的,因此,如果我们想要将一个 ...
- 发布了一个jar包到中央仓库,我的心好累…
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 前几天我在网上冲浪的时候,看见有一个老铁在git上给我提了一个issue: 万万没想到,有一天我写的烂代码居然也 ...