시스템(Linux)

리눅스 시스템에서 파일을 안전하게 삭제하고 복구할 수 있는 도구인 trash-cli 에 대해 알아보겠습니다.

forward error correction Circle 2025. 8. 20. 08:00
반응형

Ⅰ. trash-cli 란?

 리눅스와 macOS 환경에서 터미널만으로 파일을 안전하게 삭제하고, 필요 시 손쉽게 복원할 수 있는 커맨드라인 휴지통 관리 도구입니다. 기존의 rm 명령어는 파일을 완전 삭제하여 복구가 어려운 반면, trash-cli는 파일을 즉시 삭제하지 않고 운영체제 표준 휴지통 위치(~/.local/share/Trash)로 이동시킵니다.
 Freedesktop.org Trash Specification라는 표준을 준수해, GUI 환경(예: GNOME, KDE)에서 사용하는 휴지통과 동일한 파일 저장 및 관리 방식을 채택합니다. 파일은 삭제 시 원본 경로와 삭제 일자 등의 메타정보(.trashinfo 파일)와 함께 보관되어, 언제든지 원위치로 복원이 가능합니다. 시스템 안정성과 데이터 보존성을 높이면서, 실수로 인한 데이터 손실 위험을 최소화하는 강력한 삭제 솔루션입니다.

Ⅱ. trash-cli  주요 특징

ⅰ. 표준 호환성
 1) Freedesktop.org 가치 체계에 맞춰 데스크톱 휴지통과 공용 공간을 사용합니다.
 2) GNOME, KDE 등 주요 데스크톱 환경과 완벽 연동되어 터미널과 GUI 간 데이터 일관성을 유지합니다.
ⅱ. 안전한 삭제
 1) 삭제 시 파일을 즉시 완전 제거하지 않고, 휴지통으로 이동해 복구 가능하도록 합니다.
 2) 실수로 삭제한 파일도 손쉽게 복원할 수 있어 업무 환경의 안전망 역할을 수행합니다.
ⅲ. 편리한 복원 기능
 1) 파일명, 원본 저장 위치, 삭제 시각 등 복원에 필요한 메타정보를 함께 저장합니다.
 2) 복원은 쉬운 명령어로 수행되며, 복원할 파일을 선택하는 대화형 모드도 지원합니다.
ⅳ. 스크립트 및 자동화 친화
 1) 쉘 스크립트, alias 설정 등을 통해 기존 rm 명령을 대체하거나 배치 작업에 통합 가능
 2) 운영 및 개발환경에서 삭제 정책을 표준화하는 자동화 작업에 이상적입니다.

Ⅲ. trash-cli  설치 방법

배포판 / 플랫폼 설치 명령어
Ubuntu / Debian  apt update && sudo apt install trash-cli
Redhat / Fedora dnf install trash-cli
Arch Linux pacman -S trash-cli
macOS brew install trash
Windows (WSL) Linux 배포판 내 위 리눅스 명령어 사용

Ⅳ. trash-cli  사용 방법

사용 방법 설명
trash-put <파일명> 파일을 휴지통으로 이동시킵니다.
trash-list 휴지통에 있는 파일 목록을 보여줍니다.
trash-restore <파일명> 휴지통에서 파일을 복원합니다.
trash-empty 휴지통을 비웁니다.
trash-rm <파일명> 휴지통에서 파일을 영구 삭제합니다.
trash-version trash-cli 버전을 확인합니다.
trash-help 명령어 사용법을 보여줍니다.

Ⅴ. trash-cli  기본 사용법

ⅰ. 파일 삭제

 # example.txt 파일을 휴지통으로 이동
trash-put example.txt        

# 디렉터리도 이동 가능
trash-put -r myfolder/        


ⅱ. 휴지통 목록 조회

# 삭제된 항목들의 번호, 원본 위치, 삭제 시간 확인
trash-list 


ⅲ. 파일 복원

# trash-list 결과에서 지정한 번호로 복원
trash-restore 2 

# 대화명 모드에서 복원할 파일 선택  
trash-restore 

 

ⅳ. 휴지통 비우기

 # 휴지통 내 모든 항목 완전 삭제
trash-empty

# 30일 이상 된 항목만 삭제
trash-empty 30              

Ⅵ. trash-cli 활용방안 및 팁

ⅰ. rm 명령어 대체

# ~/.bashrc 또는 ~/.zshrc에 다음 설정 추가
alias rm='trash-put'
alias rr='/usr/bin/rm -rf'  # 실제 삭제 시 사용

실수로 rm을 입력해도 파일이 휴지통으로 이동해 안전하게 관리할 수 있습니다.

ⅱ. 스크립트 내 통합

# 배치 작업 시 임시파일 삭제를 안전하게 처리

#!/bin/bash
for f in *.tmp; do
  trash-put "$f"
done

# 7일 지난 휴지통 파일 자동 삭제
trash-empty 7


크론(Cron) 작업 등 자동화 환경에 쉽게 적용 가능.

 

ⅲ. GUI 휴지통과 동기화
 GNOME 파일 관리자, KDE Dolphin 등과 동일한 휴지통 위치를 사용하므로, 터미널과 GUI 환경 모두에서 삭제 및 복원이 일관되게 확장됩니다. GUI에서 삭제한 파일도 trash-cli로 복원 가능하며, 반대도 마찬가지입니다.

ⅳ. 프로젝트별 휴지통 분리

# 프로젝트 루트에 맞춘 별도 휴지통 설정 가능
export TRASH_HOME="$PROJECT_ROOT/.trash"
alias rm="trash-put --trashdir $TRASH_HOME"

여러 프로젝트가 공존하는 환경에서 휴지통 파일 충돌을 방지하고 별도 관리가 가능합니다.

반응형