Apakah ada skrip / aplikasi Linux yang, alih-alih menghapus file, memindahkannya ke lokasi “tempat sampah” khusus? Saya ingin ini sebagai pengganti rm
(bahkan mungkin aliasing yang terakhir; ada pro dan kontra untuk itu).
Yang dimaksud dengan "sampah" adalah folder khusus. Satu mv $* ~/.trash
adalah langkah pertama, tetapi idealnya ini juga harus menangani membuang beberapa file dengan nama yang sama tanpa menimpa file sampah yang lama, dan memungkinkan untuk mengembalikan file ke lokasi asli mereka dengan perintah sederhana (semacam "undo"). Selain itu, alangkah baiknya jika sampah secara otomatis dikosongkan saat reboot (atau mekanisme serupa untuk mencegah pertumbuhan tanpa akhir).
Ada solusi parsial untuk ini, tetapi tindakan "mengembalikan" tidak sepele. Apakah ada solusi yang ada untuk ini yang tidak bergantung pada sistem sampah dari shell grafis?
(Sebagai tambahan, telah ada diskusi tanpa akhir apakah pendekatan ini dibenarkan, daripada menggunakan cadangan sering dan VCS. Sementara diskusi itu ada benarnya, saya percaya masih ada ceruk untuk permintaan saya.)
gvfs-trash
di masa lalu, tetapi tidak pernah perlu untuk memulihkan dari baris perintah sampai Anda memicu rasa ingin tahu saya. Jawaban untuk pertanyaan terkait mungkin bisa membantu.Jawaban:
Ada spesifikasi (konsep) untuk Sampah di freedesktop.org. Ini tampaknya apa yang biasanya diterapkan oleh lingkungan desktop.
Implementasi commandline adalah trash-cli . Tanpa melihat lebih dekat, tampaknya memberikan kesungguhan yang Anda inginkan. Jika tidak, beri tahu kami sejauh mana ini hanya solusi sebagian.
Sejauh menggunakan program apa pun sebagai pengganti / alias untuk
rm
yang bersangkutan, ada alasan bagus untuk tidak melakukannya. Yang paling penting bagi saya adalah:rm
opsi dan bertindak sesuaisumber
rm
jadi saya tidak bisa menggunakannya secara tidak sengaja (masih ada/bin/rm
kalau-kalau saya benar-benar membutuhkannya).Trash-cli adalah aplikasi linux yang dapat diinstal menggunakan apt-get di Ubuntu atau yum di Fedora. Menggunakan perintah
trash listOfFiles
akan memindahkan yang ditentukan ke tempat sampah Anda.sumber
Jawaban sebelumnya menyebutkan perintah
trash-cli
danrmtrash
. Tidak satupun dari mereka ditemukan secara default di Ubuntu 18.04, tetapi perintahnyagio
adalah.gio help trash
Output memerintah :Saya diuji menggunakan
gio trash FILENAME
pada baris perintah, dan itu berfungsi seperti saya telah memilih file di browser file dan mengklik tombol DEL: file dipindahkan ke folder Trash desktop. (Perintah tidak meminta konfirmasi walaupun saya tidak menggunakan-f
opsi.)Menghapus file dengan cara ini adalah reversibel, sementara menjadi lebih mudah daripada mendefinisikan ulang
rm
menjadirm -i
untuk keselamatan dan harus mengkonfirmasi setiap penghapusan, yang masih menyisakan Anda beruntung jika Anda secara tidak sengaja mengkonfirmasi penghapusan Anda tidak harus memiliki.Saya menambahkan
alias tt='gio trash'
ke file definisi alias saya;tt
adalah mnemonic untuk To Trash.Ditambahkan pada edit pada 2018-06-27: Pada mesin server, tidak ada yang setara dengan direktori tempat sampah. Saya telah menulis skrip Bash berikut yang melakukan pekerjaan; pada mesin desktop, ia menggunakan
gio trash
, dan pada mesin lain, memindahkan file yang diberikan sebagai parameter ke direktori tempat sampah yang dibuatnya. Script diperbarui pada 2019-09-05.sumber
Ada sedikit utilitas yang disebut rmtrash yang melakukan ini.
Tampaknya tidak menanggapi params seperti
-r
atau-f
(tampaknya pada dasarnya hanya memindahkan file / direktori ke direktori ~ / .Trash), tetapi tidak akan menimpa file dengan nama yang sama (itu menambahkan "Salin" ke seperti-bernama file / direktori).Untuk menginstal dengan minuman
sumber
Berikut ini adalah sistem sampah cepat dan kotor yang mengatasi bentrokan nama dan bahkan memungkinkan banyak file yang dihapus di jalur yang sama selama Anda tidak menghapus lebih dari satu file per detik.
Peringatan: Saya mengetik kode ini langsung ke browser saya. Mungkin rusak. Jangan menggunakannya pada data produksi.
Masalah Dikenal:
trash
harus mengatasi baris baru dalam nama file, tetapiuntrash
tidak karena itu bergantung padagrep
dan baris baru tidak lolos dalam file metadata.sumber
Mulailah dengan mendefinisikan
move_to_trash
fungsi:Kemudian alias
rm
untuk itu:Anda selalu dapat menghubungi tua
rm
dengan melarikan diri dengan garis miring terbalik, seperti ini:\rm
.Saya tidak tahu bagaimana cara membuat direktori tempat sampah kosong saat reboot (tergantung pada sistem Anda, Anda mungkin harus melihat ke dalam
rc*
skrip), tetapi bisa juga bermanfaat untuk membuatcron
tugas yang mengosongkan direktori secara berkala.sumber
rm
sana dan pergi file Anda.del
mungkin pilihan yang lebih baik.Anda dapat menggunakan del saya:
http://fex.belwue.de/fstools/del.html
del memindahkan file dalam .del / subdirektori (dan kembali)
sumber
Di KDE 4.14.8 saya menggunakan perintah berikut untuk memindahkan file ke tempat sampah (seolah-olah itu dihapus di Dolphin):
Lampiran I: Saya menemukan tentang perintah dengan
Lampiran II: fungsi (lalu sumberkan di .bashrc Anda)
sumber