编写shell程序,删除一个文件或文件夹,删除前将其压缩成.tar.gz 格式的文件,然后将其放入回收站。回收站的路径是$HOME/.local/share/Trash/files ,要求文件或
时间: 2024-09-09 15:13:00 浏览: 81
Linux shell实现压缩多个文件代码实例
在Shell脚本中,你可以创建一个简单的步骤来实现这个操作。以下是一个基本示例,说明如何编写一个bash script,它会先备份文件或目录、压缩成.tar.gz格式,然后再移动到回收站:
```bash
#!/bin/bash
# 定义源文件或目录路径
SOURCE_PATH="$1"
# 检查路径是否存在
if [ ! -e "$SOURCE_PATH" ]; then
echo "Error: The specified path does not exist."
exit 1
fi
# 创建备份文件名
BACKUP_FILE="${SOURCE_PATH}.tar.gz"
# 使用tar命令加上gzip备份
tar czf "$BACKUP_FILE" "$SOURCE_PATH"
# 确保回收站路径存在
TRASH_DIR="$HOME/.local/share/Trash/files"
# 如果回收站不存在,创建它
mkdir -p "$TRASH_DIR" 2>/dev/null
# 将备份移动到回收站,使用mv并添加隐藏属性
TrashItem="$TRASH_DIR/$(basename "$SOURCE_PATH").deleted"
mv "$BACKUP_FILE" "$TrashItem" && chmod ahidden "$TrashItem"
echo "Backup of $SOURCE_PATH has been moved to the recycle bin."
# 相关问题:
1. 这段脚本需要怎样的权限才能运行?
2. 如何修改回收站路径?
3. 脚本对于空文件夹的处理是什么?
阅读全文