
用 mv 替换 rm 时如果垃圾箱中有相同名称的目录,mv 会报错
mv: cannot move ***: Directory not empty 在网上找到一个替代方法,改进如下,之前的方案是被注释掉的部分
rm() { #echo $* |sed "s/ /\n/g" |xargs -I {} mv -f {} /home/trash tar c $* |(cd /home/trash && tar xf - ); rm -rf $* } 但不理解 tar 命令是怎样实现的,在 man 的标准输入输出中也没有见到相关描述,希望大佬解惑
1 yyyb 2021-03-04 11:09:10 +08:00 可以加个时间后缀 |
2 huangmingyou 2021-03-04 11:13:08 +08:00 rm 有这么可怕吗 :D |
3 hlwjia PRO @huangmingyou 对 rm 不够害怕的只因为命令还敲地不够多 |
4 xltfes OP 我一直觉得不用,直到昨天 rm -r ../* 测试了一下不好使,把 tar 改成 cp 了,但 tar 还是不明白 在( https://linuxpip.org/fix-directory-not-empty-mv/)的 method 2 看到的 tar 命令 (cd backup && tar c .) | (cd backupArchives && tar xf -) 想要"earn more geek points" |
5 whee1 2021-03-04 11:32:14 +08:00 via iPhone 切换有 snapshot 功能的文件系统( btrfs,zfs ),日常使用启动到 snapshot 。 注意不要随便补全。 |
6 boris93 2021-03-04 11:37:34 +08:00 via iPhone 替换 rm 是头痛医头脚痛医脚,还会让人降低对 rm 的警惕 不如 select before delete,删之前,确认目录内容,确认路径,然后再删 防止出错这种事,要么靠备份,要么靠注意,二者皆有更好 |
7 cianchen 2021-03-04 12:06:28 +08:00 tar c 打包$*(你要删除的文件),(进入到 /home/trash 目录)管道(|) 传递文件流给 tar -xf -,进行解压缩(此时你要删除的文件被解压缩到 /home/trash 目录,可以理解为于 cp),之后调用 rm -rf 直接删除你要删除的文件。 |
8 weixiangzhe 2021-03-04 12:16:14 +08:00 还是用 trash-cli 之类的吧, 删除了还能在 .trash 文件夹里找到 |
9 weixiangzhe 2021-03-04 12:18:06 +08:00 |
10 ihipop 2021-03-04 12:18:41 +08:00 via Android pip install trash cli |
11 pkookp8 2021-03-04 12:40:43 +08:00 via Android 控制好权限,rm 随便用 每次都 root,神仙也救不了 |
12 huangmingyou 2021-03-04 13:08:24 +08:00 @hlwjia 从 2001 年开始到现在一直用 linux,我 rm 命令敲的应该不算少。 |
13 jzmws 2021-03-04 13:43:57 +08:00 rm 我改成 mv 的 |