터미널을 통해 파일을 휴지통으로 이동하는 명령


117

터미널에서 실행할 수있는 명령이 있는지 알고 싶습니다. 따라서 rm파일을 고전적으로 제거하지 않고 ( ) 대신 휴지통으로 옮깁니다 (즉, 노틸러스가 휴지통으로 이동 동작).

그러한 명령이있는 경우, 나는 그것이 무엇인지 아는 데 관심이 있습니다.


2
답변을 살펴보십시오 .
복숭아

2
또한 여기에 좋은 자료가 있습니다 : webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html
Rinzwind

답변:


105

우분투에서 기본적으로 설치된 gvfs-trash패키지에서 명령을 사용할 수 있습니다 gvfs-bin.

파일을 휴지통으로 이동 :

gvfs-trash filename

쓰레기의 내용을보십시오 :

gvfs-ls trash://

쓰레기통을 비워:

gvfs-trash --empty

또한 내 gvfs-question을 방문하십시오 .
Pandya

이것은 저에게 가장 간단한 대답입니다. 감사합니다.
Teody C. Seguin

10
에 따르면 man gvfs-trash이 찬성되지 않습니다 gio trash를 참조하십시오 man gio.
pbhj

67

쓰레기통쓰레기통 설치 설치 –sudo apt-get install trash-cli

다음을 사용하여 파일을 휴지통에 넣습니다. trash file1 file2

휴지통에있는 파일 목록 : trash-list

휴지통 비우기 : trash-empty


1
그 (우분투 관련) 도구는 쓰레기 사양 을 가리 킵니다 . 꽤 흥미롭고, 얼마나 널리 채택되었는지는 확실하지 않습니다 ...
Frank Nocke

설치 후 명령을 실행하고 오류가 발생합니다. File "/usr/bin/trash-list", line 4, in <module> ImportError: No module named 'trashcli'
Daniel

25

2017 년 기준 gvfs-trash으로 더 이상 사용되지 않는 것 같습니다.

$ touch test
$ gvfs-trash test
This tool has been deprecated, use 'gio trash' instead.
See 'gio help trash' for more info.

gio구체적으로 사용해야합니다

gio trash

권장되는 방법입니다.


2
gvfs-trash더 이상 사용되지 않는 소스를 링크 할 수 gio있습니까?
Melebius

1
불행히도 링크를 제공 할 수는 없지만 이것이 Kubuntu 17.10에서 gvfs-trash를 사용하려고하는 것입니다. pastebin.com/HA4a1pbs
Eugen Tverdokhleb

1
여기에 예제를 붙여 넣을 수 있습니다. 시스템 버전 번호와 함께하면 충분합니다. 16.04 LTS를 사용하고 gvfs-trash있으며 여기서 유일한 옵션입니다.
Melebius

이 도구에는 다른 멋진 기능들이 많이 있습니다. 나는 info명령을 좋아한다 ; 유용한 것 같습니다.
Raffi Khatchadourian

4

@Radu Rădeanu답변을 업데이트 합니다. 우분투가 gio대신 사용하도록 말하고 있기 때문에 ...

따라서 휴지통 some_file(또는 폴더)을 사용하려면

gio trash some_file

쓰레기 수거통 다이빙 사용

gio list trash://

휴지통을 비우려면

gio trash --empty

3

저는 저 기술 방식이 가장 좋습니다. 다음 .Tr을 입력하여 홈 디렉토리에 폴더 를 만들었습니다 .

mkdir ~/.Tr

rm파일을 삭제 하는 데 사용 하는 대신 다음을 ~/.Tr입력하여 파일을 디렉토리로 이동합니다 .

mv fileName ~/.Tr

이것은 우분투 지식 수준이 상당히 낮고 내가 무엇을 걱정할 수 있기 때문에 시스템 폴더를 망칠 수없는 경우 추가 혜택으로 원하지 않는 파일에 대한 효과적이고 간단한 방법입니다. 시스템에 문제가 생겼을 때 당신이 또한 낮은 수준이라면 "." 디렉토리 이름에 숨겨진 디렉토리가됩니다.


3

이전 답변은 명령을 언급 gio trash했는데 , 명령 은 괜찮습니다. 그러나 서버 시스템에는 휴지통 디렉토리에 해당하는 것이 없습니다. 작업을 수행하는 Bash 스크립트를 작성했습니다. (Ubuntu) 데스크톱 컴퓨터에서는을 사용합니다 gio trash. ( alias tt='move-to-trash'내 별칭 정의 파일에 추가 했습니다 tt. "쓰레기"의 니모닉입니다.)

#!/bin/bash
# move-to-trash

# Teemu Leisti 2018-07-08

# This script moves the files given as arguments to the trash directory, if they
# are not already there. It works both on (Ubuntu) desktop and server hosts.
#
# The script is intended as a command-line equivalent of deleting a file from a
# graphical file manager, which, in the usual case, moves the deleted file(s) to
# a built-in trash directory. On server hosts, the analogy is not perfect, as
# the script does not offer the functionalities of restoring a trashed file to
# its original location nor of emptying the trash directory; rather, it is an
# alternative to the 'rm' command that offers the user the peace of mind that
# they can still undo an unintended deletion before they empty the trash
# directory.
#
# To determine whether it's running on a desktop host, the script tests for the
# existence of directory ~/.local/share/Trash. In case it is, the script relies
# on the 'gio trash' command.
#
# When not running on a desktop host, there is no built-in trash directory, so
# the first invocation of the script creates one: ~/.Trash/. It will not
# overwrite an existing file in that directory; instead, in case a file given as
# an argument already exists in the custom trash directory, the script first
# appends a timestamp to the filename, with millisecond resolution, such that no
# existing file will be overwritten.
#
# The script will not choke on a nonexistent file. It outputs the final
# disposition of each argument: does not exist, was already in trash, or was
# moved to the trash.


# Exit on using an uninitialized variable, and on a command returning an error.
# (The latter setting necessitates appending " || true" to those arithmetic
# calculations that can result in a value of 0, lest bash interpret the result
# as signalling an error.)
set -eu

is_desktop=0

if [[ -d ~/.local/share/Trash ]] ; then
    is_desktop=1
    trash_dir_abspath=$(realpath ~/.local/share/Trash)
else
    trash_dir_abspath=$(realpath ~/.Trash)
    if [[ -e $trash_dir_abspath ]] ; then
        if [[ ! -d $trash_dir_abspath ]] ; then
            echo "The file $trash_dir_abspath exists, but is not a directory. Exiting."
            exit 1
        fi
    else
        mkdir $trash_dir_abspath
        echo "Created directory $trash_dir_abspath"
    fi
fi

for file in "$@" ; do
    file_abspath=$(realpath -- "$file")
    file_basename=$( basename -- "$file_abspath" )
    if [[ ! -e $file_abspath ]] ; then
        echo "does not exist:   $file_abspath"
    elif [[ "$file_abspath" == "$trash_dir_abspath"* ]] ; then
        echo "already in trash: $file_abspath"
    else
        if (( is_desktop == 1 )) ; then
            gio trash "$file_abspath" || true
        else
            move_to_abspath="$trash_dir_abspath/$file_basename"
            while [[ -e "$move_to_abspath" ]] ; do
                move_to_abspath="$trash_dir_abspath/$file_basename-"$(date '+%Y-%m-%d-at-%H:%M:%S.%3N')
            done
            # While we're reasonably sure that the file at $move_to_abspath does not exist, we shall
            # use the '-f' (force) flag in the 'mv' command anyway, to be sure that moving the file
            # to the trash directory is successful even in the extremely unlikely case that due to a
            # run condition, some other thread has created the file $move_to_abspath after the
            # execution of the while test above.
            /bin/mv -f "$file_abspath" "$move_to_abspath"
        fi
        echo "moved to trash:   $file_abspath"
    fi
done


0

KDE 4.14.8에서는 다음 명령을 사용하여 파일을 휴지통으로 옮겼습니다 (돌핀에서 제거 된 것처럼).

kioclient move path_to_file_or_directory_to_be_removed trash:/

부록 : 나는 명령에 대한 발견

    ktrash --help
...
    Note: to move files to the trash, do not use ktrash, but "kioclient move 'url' trash:/"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.