Вопрос Команда переместить файл в корзину через терминал


Я хотел бы знать, есть ли команда, которую я могу выпустить в терминале, поэтому я не классически удаляю (rm), но вместо этого переместите его в корзину (т. е. Nautilus Move to Trash).

В случае, если есть такая команда, мне также будет интересно узнать, что это такое.


102
2017-11-06 08:46


происхождения


Посмотри на это ответ, - Peachy
Также хороший ресурс здесь: webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html - Rinzwind


ответы:


Вы можете использовать gvfs-trash команда из пакета gvfs-bin который по умолчанию установлен в Ubuntu.

Переместить файл в корзину:

gvfs-trash имя файла

См. Содержимое мусора:

gvfs-ls trash://

Очистить корзину:

gvfs-trash --empty

92
2017-09-17 06:21



Также посетите мой GVFS-вопрос, - Pandya
Это самый простой ответ для меня, который работает. Спасибо. - Teody C. Seguin
В соответствии с man gvfs-trash он устарел в пользу gio trash, видеть man gio, - pbhj


устанавливать трэш-кли Install trash-cli - sudo apt-get install trash-cli

Поместите файлы в корзину с помощью: мусор file1 file2

Список файлов в корзине: trash-list

Пустой мусор с: trash-empty


60
2017-11-06 09:12



Этот инструмент (связанный с Ubuntu) указывает на спецификация мусора, Довольно интересно, не уверен, насколько широко принято, хотя ... - Frank Nocke
После установки я запустил команду и получил ошибку: File "/usr/bin/trash-list", line 4, in <module> ImportError: No module named 'trashcli' - Daniel


По состоянию на 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

это рекомендуемый способ.


11
2017-10-29 10:49



Не могли бы вы связать источник для gvfs-trash устаревают и что gio является? - Melebius
К сожалению, я не могу предоставить ссылку, но это то, что я пытаюсь использовать gvfs-trash на Kubuntu 17.10: pastebin.com/HA4a1pbs - Eugen Tverdokhleb
Вы можете вставить здесь пример в свой ответ, этого было бы достаточно для меня вместе с номером версии системы. Я использую 16,04 LTS и gvfs-trash это единственный вариант здесь. - Melebius
У этого инструмента есть множество других приятных функций. мне нравится info команда; это кажется полезным. - Raffi Khatchadourian


Мне нравятся лучшие технологии. Я сделал папку .Tr в моем домашнем каталоге, набрав:

mkdir ~/.Tr

и вместо использования rm для удаления файлов я перемещаю эти файлы на ~/.Tr , набрав:

mv fileName ~/.Tr

Это эффективный и простой способ сохранить доступ к файлам, которые, по вашему мнению, вам не нужны, с добавленной выгодой в моем случае не возиться с папками системы, так как мои уровни знаний Ubuntu довольно низки, и я беспокоюсь о том, прикручивая, когда я возился с системным материалом. Если вы также низкий уровень, обратите внимание, что «.» в имени каталога делает его скрытым.


2
2017-09-25 17:29





Вот открытый источник версия на основе nodejs (если вы хотите знать, что происходит под капотом, или это нужно в проекте), что также поддержка командной строки (если вы счастливы, если он просто работает.

> trash pictures/beach.jpg

1
2017-08-15 17:44





В предыдущем ответе упоминается команда 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

1
2018-06-26 13:05