rm删除到回收站

article/2025/7/22 3:52:53

rm删除到回收站

    • 背景
    • 安装trash-cli
        • pip安装
        • 包管理器安装
      • 将trash-put别名设为rm
      • 设置回收站文件过期时间
    • trash基本用法
      • 删除文件
        • 删除后文件去了哪里
      • 查看回收站
      • 从回收站中恢复文件
        • 恢复文件到指定路径
      • 删除回收站中的指定文件

背景

在Linux命令行下操作的时候会不小心误删文件或目录,而trash-cli就是虚拟回收站的一个程序。

在使用此命令删除东西的时候, 会把对应的文件和目录放入一个名为”.trash”的临时文件夹中,稍后我们可以从这个文件夹中永久删除或者恢复这些文件,也可以设置这些文件的有效期。


安装trash-cli


pip安装

需要Python3.7以上

pip3 install trash-cli


包管理器安装
# Ubuntu / Debian
apt install -y trash-cli

将trash-put别名设为rm

vim /etc/profile.d/rm.sh

cat << EOF >> /etc/profile.d/rm.sh
# rm 禁用
alias rm="/usr/local/bin/trash-put"
EOFsource /etc/profile.d/rm.sh

设置回收站文件过期时间

配置定时任务删除三个月前的文件

# 命令整体作用:向当前用户的 crontab 中添加「每天清理回收站超90天文件」的任务,同时保留原有 crontab 任务
(crontab -l ; echo "@daily $(which trash-empty) 90") | crontab -

命令解释:

(crontab -l ;  # 1. 先列出当前用户已有的所有 crontab 任务(防止覆盖原有定时任务)echo "@daily $(which trash-empty) 90"  # 2. 输出要新增的定时任务行# ├─ @daily → cron 特殊时间关键字,代表「每天执行一次」# ├─ $(which trash-empty) → 自动获取 trash-empty 命令的绝对路径(解决 crontab 环境变量缺失问题)# └─ 90 → trash-empty 的参数,含义是「删除回收站中超过 90 天的文件」
) | crontab -  # 3. 将「原有任务 + 新任务」的合并结果,通过管道传给 crontab - ,实现 crontab 配置更新(- 表示从标准输入读取配置)

trash基本用法

命令解释
trash把文件或目录放到回收站
trash-put把文件或目录放到回收站
trash-list查看回收站中所有文件或目录
trash-restore从回收站恢复指定文件或目录
trash-rm删除回收站中指定文件或目录
trash-empty清除回收站中的所有文件(可以指定时间范围)

删除文件

# 删除test文件
rm test

删除后文件去了哪里

trash-put删除的文件,会被移动到用户家目录下的专属回收站目录$HOME/.local/share/Trash/

目录名作用
$HOME/.local/share/Trash/files删除后的文件会被移动到这里
$HOME/.local/share/Trash/info记录已删除文件的原路径删除时间等信息


查看回收站

# 查看回收站中的文件列表
trash-list


从回收站中恢复文件

trash-restore# 会进入交互界面

输入文件序号,文件会被恢复到原始路径


恢复文件到指定路径
# 移动已删除的目录到其他路径
mv $HOME/.local/share/Trash/files/test  /tmp/test

删除回收站中的指定文件

# 删除回收站中超过 90 天的文件
trash-empty 90

http://www.hkcw.cn/article/QYPZRHUerd.shtml

相关文章

DDP与FSDP:分布式训练技术全解析

DDP与FSDP:分布式训练技术全解析 DDP(Distributed Data Parallel)和 FSDP(Fully Sharded Data Parallel)均为用于深度学习模型训练的分布式训练技术,二者借助多 GPU 或多节点来提升训练速度。 1. DDP(Distributed Data Parallel) 实现原理 数据并行:把相同的模型复…

数据采集是什么?一文讲清数据采集系统的模式!

目录 一、数据采集是什么&#xff1f; 二、为什么要进行数据采集 1. 为企业决策提供依据 2. 推动科学研究的发展 3. 提升生产效率和质量 三、数据采集系统的模式 1. 实时采集模式 2. 定时采集模式 3. 事件驱动采集模式 四、不同模式的应用场景及选择考虑因素 1. 应用…

python学习day33

知识点回顾&#xff1a; 1.PyTorch和cuda的安装 2.查看显卡信息的命令行命令&#xff08;cmd中使用&#xff09; 3.cuda的检查 4.简单神经网络的流程 a.数据预处理&#xff08;归一化、转换成张量&#xff09; b.模型的定义 i.继承nn.Module类 ii.定义每一个层 iii.定义前向传播…

Python中的变量、赋值及函数的参数传递概要

Python中的变量、赋值及函数的参数传递概要 python中的变量、赋值 python中的变量不是盒子。 python中的变量无法用“变量是盒子”做解释。图说明了在 Python 中为什么不能使用盒子比喻&#xff0c;而便利贴则指出了变量的正确工作方式。 如果把变量想象为盒子&#xff0c;那…

如何优化微信小程序中渲染带有图片的列表(二进制流存储方式的图片存在本地数据库)

方法一&#xff1a;对列表的获取进行分页处理 实现方法&#xff1a; 前端请求&#xff08;需要向后端传两个参数&#xff0c;pageIndex是获取第几页是从0开始&#xff0c;pageSize是这一页需要获取多少个数据&#xff09; 后端接口实现&#xff08;因为这里是通过参数拼接请求…

电磁器件的“折纸革命“:牛津《Sci. Reports》发布剪纸超材料

01 前沿速递&#xff1a;顶尖团队破解行业难题 近日&#xff0c;牛津大学工程科学系杨云芳、Andrea Vallecchi、Ekaterina Shamonina、Christopher Stevens及游忠教授团队在《Scientific Reports》发表突破性研究&#xff0c;提出一类基于剪纸&#xff08;Kirigami&#xff0…

【Java学习笔记】接口

接口 应用场景引出 一、接口的介绍 1. 接口的基本结构 interface 接口名{属性抽象方法 }引出关键字&#xff1a;implements 2. 子类实现接口 class a implements 接口名{}3. 接口中的属性说明&#xff1a;属性默认是public static final修饰的 &#xff08;1&#xff09;f…

02 APP 自动化-Appium 运行原理详解

环境搭建见 01 APP 自动化-环境搭建 文章目录 一、Appium及Appium自动化测试原理二、Appium 自动化配置项三、常见 ADB 命令四、第一个 app 自动化脚本 一、Appium及Appium自动化测试原理 Appium 跨平台、开源的 app 自动化测试框架&#xff0c;用来测试 app 应用程序&#x…

(1)pytest简介和环境准备

1. pytest简介 pytest是python的一种单元测试框架&#xff0c;与python自带的unittest测试框架类似&#xff0c;但是比unittest框架使用起来更简洁&#xff0c;效率更高。根据pytest的官方网站介绍&#xff0c;它具有如下特点&#xff1a; 非常容易上手&#xff0c;入门简单&a…

同元软控、核动力研究院与华北电力大学产学研联合实训室正式揭牌

2025年5月27日&#xff0c;华北电力大学、苏州同元软控信息技术有限公司&#xff08;以下简称“同元软控”&#xff09;、中国核动力研究设计院&#xff08;以下简称“核动力研究院”&#xff09;联合实训室揭牌授权仪式暨座谈交流会在华北电力大学召开。华北电力大学教务处处长…

PyTorch中nn.Module详解

直接print(dir(nn.Module))&#xff0c;得到如下内容&#xff1a; 一、模型结构与参数 parameters() 用途&#xff1a;返回模块的所有可训练参数&#xff08;如权重、偏置&#xff09;。示例&#xff1a;for param in model.parameters():print(param.shape)named_parameters…

若依项目天气模块

在若依项目里添加了一个天气模块&#xff0c;记录一下过程。 一、功能结构与组件布局 天气模块以卡片形式&#xff08;el-card&#xff09;展示&#xff0c;包含以下核心功能&#xff1a; 实时天气&#xff1a;显示当前城市、温度、天气状况&#xff08;如晴、多云&#xff…

APM32芯得 EP.06 | APM32F407移植uC/OS-III实时操作系统经验分享

《APM32芯得》系列内容为用户使用APM32系列产品的经验总结&#xff0c;均转载自21ic论坛极海半导体专区&#xff0c;全文未作任何修改&#xff0c;未经原文作者授权禁止转载。 最近我开始学习 uC/OS-III 实时操作系统&#xff0c;并着手将其移植到APM32F407 开发板上。在这个过…

图解gpt之注意力机制原理与应用

大家有没有注意到&#xff0c;当序列变长时&#xff0c;比如翻译一篇长文章&#xff0c;或者处理一个长句子&#xff0c;RNN这种编码器就有点力不从心了。它把整个序列信息压缩到一个固定大小的向量里&#xff0c;信息丢失严重&#xff0c;而且很难记住前面的细节&#xff0c;特…

更新密码--二阶注入攻击的原理

1.原理知识&#xff1a; 二阶SQL注入攻击&#xff08;Second-Order SQL Injection&#xff09;原理详解 一、基本概念 二阶注入是一种"存储型"SQL注入&#xff0c;攻击流程分为两个阶段&#xff1a; ​​首次输入​​&#xff1a;攻击者将恶意SQL片段存入数据库​…

RFID技术助力托盘运输线革新

RFID技术助力托盘运输线革新 湖北某工厂托盘运输线使用上存在的问题&#xff1a; 1、托盘在运输线上受信息录入时间等问题影响&#xff0c;导致效率低下&#xff1b; 2、原先托盘上粘贴的条码容易污损&#xff0c;并且时常需要更新更换&#xff0c;导致信息录入、出入库等步…

EasyRTC嵌入式音视频通信SDK助力1v1实时音视频通话全场景应用

一、方案概述​ 在数字化通信需求日益增长的今天&#xff0c;EasyRTC作为一款全平台互通的实时视频通话方案&#xff0c;实现了设备与平台间的跨端连接。它支持微信小程序、APP、PC客户端等多端协同&#xff0c;开发者通过该方案可快速搭建1v1实时音视频通信系统&#xff0c;适…

java.io.IOException: ZIP entry size is too large or invalid

java.io.IOException: ZIP entry size is too large or invalid 解决方案&#xff1a;pom.xml添加<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>

vue3 项目配置多语言支持,如何从服务端拿多语言配置

在 Vue3 项目中实现多语言支持并从服务端获取配置&#xff0c;可以使用 Vue I18n 库。在初始化阶段可以发送请求获取多语言配置或者通过本地文件加载json文件的方式&#xff0c;都可以实现。我这里是tauri项目&#xff0c;所以使用的是invoke从tauri端拿到配置文件&#xff0c;…

龙舟竞渡与芯片制造的共通逻辑:华芯邦的文化破局之道

端午节承载着中华民族数千年的精神密码&#xff0c;龙舟最初是古人沟通天地、祈求风调雨顺的仪式载体。战国时期&#xff0c;屈原投江的悲壮故事为端午注入了家国情怀&#xff0c;龙舟竞渡从此兼具纪念英雄与祈福避疫的双重意义。这种文化内核&#xff0c;与深圳市华芯邦“以科…