Czy istnieje skrypt / aplikacja dla systemu Linux, która zamiast usuwać pliki, przenosi je do specjalnej lokalizacji „kosza”? Chciałbym to jako zamiennik rm
(może nawet aliasy tego drugiego; są za i przeciw).
Przez „kosz” rozumiem specjalny folder. Pojedynczy mv $* ~/.trash
to pierwszy krok, ale najlepiej powinien również obsługiwać usuwanie kilku plików o tej samej nazwie bez nadpisywania starszych plików w trybie kosza i umożliwiać przywracanie plików do ich pierwotnej lokalizacji za pomocą prostego polecenia (rodzaj „cofania”). Ponadto byłoby miło, gdyby kosz był automatycznie opróżniany podczas ponownego uruchamiania (lub podobny mechanizm zapobiegający niekończącemu się rozwojowi).
Istnieją częściowe rozwiązania tego problemu, ale działanie „przywracania” nie jest trywialne. Czy istnieją jakieś rozwiązania tego problemu, które nie opierają się na systemie kosza z graficznej powłoki?
(Nawiasem mówiąc, toczyły się niekończące się dyskusje, czy takie podejście jest uzasadnione, zamiast częstych kopii zapasowych i VCS. Chociaż te dyskusje mają rację, uważam, że dla mojej prośby jest jeszcze nisza).
gvfs-trash
w przeszłości, ale nigdy nie musiałem przywracać z wiersza poleceń, dopóki nie wzbudzisz mojej ciekawości. Pomocna może być odpowiedź na powiązane pytanie.Odpowiedzi:
Na stronie freedesktop.org znajduje się specyfikacja (wersja robocza) Kosza . Najwyraźniej jest to zwykle realizowane przez środowiska komputerowe.
Implementacją wiersza polecenia byłoby trash-cli . Bez dokładniejszego spojrzenia wydaje się on zapewniać pożądaną funkcjonalność. Jeśli nie, powiedz nam, jak dalece jest to tylko częściowe rozwiązanie.
Jeśli chodzi o używanie dowolnego programu jako zamiennika / aliasu
rm
, istnieją dobre powody, aby tego nie robić. Najważniejsze dla mnie są:rm
opcje i odpowiednio postępowaćźródło
rm
więc nie mogę go użyć przypadkowo (nadal jest/bin/rm
tak, że naprawdę go potrzebuję).Trash-cli to aplikacja linuksowa, którą można zainstalować za pomocą apt-get w Ubuntu lub yum w Fedorze. Użycie polecenia
trash listOfFiles
spowoduje przeniesienie określonego do kosza.źródło
Poprzednie odpowiedzi wspominają polecenia
trash-cli
irmtrash
. Żaden z nich nie jest domyślnie znaleziony w systemie Ubuntu 18.04, ale poleceniegio
to. Wyjściowe poleceniagio help trash
:Przetestowałem za pomocą
gio trash FILENAME
wiersza polecenia i działa tak, jakbym wybrał plik w przeglądarce plików i kliknąłem przycisk DEL: plik jest przenoszony do folderu Kosz na pulpicie. (Polecenie nie wyświetla monitu o potwierdzenie, mimo że nie skorzystałem z tej-f
opcji).Usuwanie plików w ten sposób jest odwracalny, będąc bardziej wygodne niż redefinicji
rm
byćrm -i
dla bezpieczeństwa i konieczności potwierdzić każde usunięcie, która pozostawia ci pecha jeśli przypadkowo potwierdzić usunięcie nie powinno się mieć.Dodałem
alias tt='gio trash'
do mojego pliku definicji aliasów;tt
jest mnemonikiem To Trash.Dodano podczas edycji w dniu 27.06.2018 r .: Na serwerach nie ma odpowiednika katalogu na śmieci. Napisałem następujący skrypt Bash, który wykonuje zadanie; na komputerach stacjonarnych używa
gio trash
, a na innych komputerach przenosi pliki podane jako parametry do utworzonego katalogu śmieci. Skrypt zaktualizowano 05.09.2019.źródło
Jest to małe narzędzie o nazwie rmtrash, które to robi.
Wygląda na to, że nie reaguje na parametry takie jak
-r
lub-f
(wydaje się, że zasadniczo przenosi katalog / do katalogu ~ / .Trash), ale nie zastępuje plików o tej samej nazwie (dodaje „Kopiuj” do pliki / katalogi o podobnych nazwach).Aby zainstalować za pomocą naparu
źródło
Oto szybki i brudny system kosza, który radzi sobie z konfliktami nazw, a nawet pozwala na usunięcie wielu plików na tej samej ścieżce, o ile nie usuniesz więcej niż jednego pliku na sekundę.
Ostrzeżenie: wpisałem ten kod bezpośrednio w przeglądarce. Prawdopodobnie jest zepsuty. Nie używaj go do danych produkcyjnych.
Znane problemy:
trash
powinien radzić sobie z nowymi liniami w nazwach plików, aleuntrash
nie robi tego, ponieważ polega na nim,grep
a nowe wiersze nie są wstawiane do pliku metadanych.źródło
Zacznij od zdefiniowania
move_to_trash
funkcji:Następnie alias
rm
do tego:Zawsze można zadzwonić stary
rm
uciekając go odwrotnym ukośnikiem, tak:\rm
.Nie wiem, jak opróżnić katalog kosza przy ponownym uruchomieniu (w zależności od systemu może być konieczne zajrzenie do
rc*
skryptów), ale warto również utworzyćcron
zadanie, które okresowo opróżnia katalog.źródło
rm
i tam twoje pliki.del
może być lepszym wyborem.Możesz użyć mojego del:
http://fex.belwue.de/fstools/del.html
del przenosi pliki do .del / podkatalogu (iz powrotem)
źródło
W KDE 4.14.8 użyłem następującego polecenia, aby przenieść pliki do kosza (tak jakby zostały usunięte w Dolphin):
Dodatek I: Znalazłem o poleceniu za pomocą
Dodatek II: funkcja (następnie pobierz ją w pliku .bashrc)
źródło