rm
명령을 구성하고 싶습니다 . 사용자가 rm
파일을 삭제하려고 입력하면 즉시 삭제하는 대신 해당 파일을 홈 폴더의 .trash로 전송해야 합니다. 누구든지 나를 도와줄 수 있나요?
답변1
libtrash와 함께 LD_PRELOAD를 사용할 수 있습니다.
바라보다:http://www.techrepublic.com/article/safely-delete-linux-files-with-libtrash/5034918
~/.trash 폴더에 있는 파일에 대한 하드 링크를 만들 수도 있습니다. 일반 파일(이전의 하드 링크)이 삭제되면 휴지통에서 삭제할 때까지 디스크에 남아 있습니다.
하드 링크를 생성하려면:
ln test.txt ~/.trash/test.txt
답변2
빠른 해결 방법은 다음 함수 선언을 ~.bashrc
.
function rm() {
mv "${@}" ~/.trash
}
지침:
rm
와 간의 옵션 차이점은mv
주석으로 다룹니다.- 쓰레기통의 행동에 익숙해질 수도 있습니다. 이 수정 없이 다른 컴퓨터/계정에서 빠르게 삭제하면 큰 문제가 발생할 수 있습니다 ;-)
5센트만 주세요. 다음을 사용하세요.
alias rm='rm -i '
답변3
실제로 "rm" 명령의 이름을 바꾸거나 이동하는 것은 좋은 생각이 아니라는 점을 명심하십시오. 더 나은 접근 방식은 사용자 프로필에서 완전히 다른 스크립트를 사용하는 alias
것 입니다.rm
.bash_profile에서 (bash를 기본 쉘로 사용한다고 가정)
alias rm='~/bin/deleteFile'
그런 다음 스크립트를 만들 수 있습니다 ~/bin/deleteFile
. 필요에 맞게 다음을 복사/수정하세요.
#!/bin/bash
TODEL=$1
if [ "${TODEL:0:1}" == "/" ]; then #full path?
TRASH=~/trash-can/`dirname $1`
else #relative path.
TRASH=~/trash-can/`pwd`/`dirname $1`
fi
mkdir -p $TRASH 2> /dev/null
mv $TODEL $TRASH
이는 테스트되지 않았지만 필요에 따라 작동합니다. 해결해야 할 몇 가지 주의 사항이 있지만 이를 처리하는 방법을 결정하는 것은 사용자의 몫입니다. 즉, 파일을 삭제하고 같은 이름의 새 파일을 만든 다음 삭제하면 어떻게 되나요? 그리고 이 스크립트는 쓰레기를 정리하지 않습니다. 어쩌면 매주 예정된 작업이나 그와 비슷한 것일까요?
이는 직접 호출된 스크립트를 재정의하지 않으며 /bin/rm
bash 구성 파일에 로드되지 않은 스크립트와 함께 사용되지도 않습니다. 이 스크립트를 어느 정도 신뢰하기 전에 고려해야 할 사항이 수백 가지가 있을 수 있습니다.
답변4
데비안에서는 ~./bash_aliases의 'alias rm='mv -t ~/home/.trash/ '와 같은 것이 작동해야 합니다. 그러나 별칭을 사용하는 것은 좋은 습관이 아닙니다.RM도착하다MV영구 삭제를 사용하려는 다른 사용자에게 영향을 미칠 수 있기 때문입니다.RM. 또한 별칭 경로로 이동하는 경우 정기적으로 휴지통을 비우도록 cron 작업을 설정해야 할 수도 있습니다.
여러 가지 대안이 주어졌을 때여기- 주로 타사 도구/스크립트.