Vraag Commando om een ​​bestand via de terminal naar de prullenbak te verplaatsen


Ik zou graag willen weten of er een commando is dat ik in een terminal kan uitgeven, zodat ik niet klassiek verwijder (rm) het bestand, maar in plaats daarvan verplaatsen naar prullenbak (dat wil zeggen Nautilus Move to Trash-gedrag).

Als er zo'n opdracht is, zou ik ook geïnteresseerd zijn om te weten wat het is.


102
2017-11-06 08:46


oorsprong


Kijk eens naar dit antwoord. - Peachy
Ook een goede bron hier: webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html - Rinzwind


antwoorden:


Je kunt gebruiken gvfs-trash commando uit het pakket gvfs-bin welke standaard is geïnstalleerd in Ubuntu.

Verplaats bestand naar prullenbak:

gvfs-trash bestandsnaam

Bekijk de inhoud van de prullenbak:

gvfs-ls trash://

Leeg de prullenbak:

gvfs-trash --empty

92
2017-09-17 06:21



Bezoek ook mijn gvfs-vraag. - Pandya
Dit is het eenvoudigste antwoord voor mij dat werkt. Dank je. - Teody C. Seguin
Volgens man gvfs-trash het is verouderd ten gunste van gio trash, zien man gio. - pbhj


Installeren trash-cli Install trash-cli - sudo apt-get install trash-cli

Zet bestanden in de prullenbak met: uitschot file1 file2

Lijst bestanden in de prullenbak: trash-list

Prullenbak legen met: trash-empty


60
2017-11-06 09:12



Die (Ubuntu-gerelateerde) tool wijst naar a trash spec. Best interessant, niet zeker hoe breed geadopteerd, hoewel ... - Frank Nocke
Na de installatie voer ik de opdracht uit en krijg ik de foutmelding: File "/usr/bin/trash-list", line 4, in <module> ImportError: No module named 'trashcli' - Daniel


Vanaf 2017 gvfs-trash lijkt te zijn verouderd.

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

Je zou ... moeten gebruiken gio, specifiek

gio trash

is de aanbevolen manier.


11
2017-10-29 10:49



Zou je een bron kunnen linken voor gvfs-trash afgekeurd en wat gio is? - Melebius
Ik kan helaas geen link plaatsen, maar dit is wat ik probeer te gebruiken gvfs-trash op Kubuntu 17.10: pastebin.com/HA4a1pbs - Eugen Tverdokhleb
U kunt het voorbeeld hier in uw antwoord plakken, het zou voldoende zijn voor mij samen met het versienummer van het systeem. Ik gebruik 16.04 LTS en gvfs-trash is de enige optie hier. - Melebius
Deze tool heeft nog een aantal andere leuke functies. ik vind de leuk info opdracht; het lijkt nuttig. - Raffi Khatchadourian


Ik hou van de low-tech manieren het beste. Ik heb een map gemaakt .Tr in mijn thuismap door te typen:

mkdir ~/.Tr

en in plaats van gebruiken rm om bestanden te verwijderen, verplaats ik die bestanden naar de ~/.Tr map door te typen:

mv fileName ~/.Tr

Dit is een effectieve en eenvoudige manier om toegang te houden tot bestanden waarvan je denkt dat je ze niet wilt, met als bijkomend voordeel dat ik niet rommelig maak met de mappen van het systeem, omdat mijn Ubuntu-kennisniveaus vrij laag zijn en ik me zorgen maak over wat ik zou kunnen zijn verknoeien als ik rotzooi met systeemdingen. Als u ook een laag niveau hebt, houd er dan rekening mee dat de "." in de mapnaam maakt het een verborgen map.


2
2017-09-25 17:29





Hier is een open bron nodejs-gebaseerde versie (als je wilt weten wat er onder de motorkap gebeurt of dit in een project nodig hebt), heeft dat ook opdrachtregelondersteuning (als je gelukkig bent, als het gewoon werkt.

> trash pictures/beach.jpg

1
2017-08-15 17:44





In een eerder antwoord wordt het commando genoemd gio trash, wat prima is voor zover het gaat. Op servermachines bestaat er echter geen equivalent van een prullenbak. Ik heb een Bash-script geschreven dat de klus klopt; op (Ubuntu) desktopmachines, het gebruikt gio trash. (Ik heb toegevoegd alias tt='move-to-trash' naar mijn aliasdefinitiesbestand; tt is een ezelsbruggetje voor "naar prullenbak".)

#!/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