Beberapa waktu lalu saya keliru menghapus folder rumah saya karena saya menjalankan rm -rf *
terminal yang salah, yang direktori kerjanya adalah folder rumah!
Saya berharap saya memiliki alias untuk rm
perintah, tetapi bukan itu masalahnya.
Sekarang, saya berencana membuat skrip sebagai alias untuk rm
.
Apakah Anda memiliki praktik terbaik untuk disarankan?
Terima kasih.
rm
adalah perintah berbahaya yang membutuhkan alias untuk keselamatan. Dengan menggunakan opsir
danf
, Anda memberi tahu shell saya tahu ini berbahaya, dan saya sudah memikirkannya dengan seksama, dan inilah yang sebenarnya ingin saya lakukan . Jika Anda tidak menggunakan opsi-opsi itu, Anda tidak dapat menghapus seluruh folder rumah Anda dengannya.rm
Anda akan terbiasa dengan alias itu. Kemudian suatu hari, Anda akan berada di sistem di mana alias tidak ada, dan Anda akan melakukan hal yang salah ketika Anda tidak mengharapkannya. Dan mungkin itu bukan sistem Anda.rm
untukrm -i
.Jawaban:
Jika Anda ingin yang diubahsuaikan
rm
, jangan panggilnyarm
kecuali nama Andamyrm
,delete
atau apa pun.The
rm='rm -i'
alias adalah horor karena setelah beberapa saat menggunakannya, Anda akan mengharapkanrm
untuk meminta Anda secara default sebelum menghapus file. Tentu saja, suatu hari Anda akan menjalankannya dengan akun yang belum ditetapkan alias dan sebelum Anda memahami apa yang terjadi, sudah terlambat.Bagaimanapun, cara yang baik untuk dipersiapkan untuk kehilangan file atau korupsi adalah melakukan backup.
Alternatif cepat yang akan melindungi Anda dari penghapusan file yang tidak disengaja atau ditimpa menggunakan sistem file yang mendukung snapshot tak terbatas seperti ZFS. Jika pemotretan yang sering dilakukan secara otomatis, Anda dapat memulihkan file pada keadaan saat pemotretan terakhir sebelum kejadian.
sumber
Jika Anda ingin menyimpan alias, tetapi tidak ingin mengambil risiko terbiasa dengan perintah yang bekerja secara berbeda pada sistem Anda daripada yang lain, Anda dapat menonaktifkan
rm
seperti iniKemudian Anda dapat membuat alias aman Anda sendiri, mis
atau gunakan
trash
saja.sumber
remove
sebagaiecho "rm is disabled, use trash or /bin/rm instead." -irv
. Dan, seperti halnya akal sehat, tidakkah Anda ingin pesan darirm
merujuk padaremove
perintah aman Anda ?Anda bisa mencoba menggunakannya
trash
. Ingatlah untuk mengosongkannya sesekali ...sumber
Tanpa harus mengubah profil everyones, yang dapat Anda lakukan adalah menempatkan file bernama -i di direktori.
sumber
.* *
, bukan* .*
(yang saya yakini lebih umum) atau* . *
(yang Anda katakan). ..... . Tapi saya setuju, itu trik yang rapi.Saya menggunakan skrip berikut.
Jika Anda secara tidak sengaja menghapus file, pulihkan dari
$HOME/tmp
.Skrip memindahkan file yang dihapus ke
tmp
direktori dan menghapusnya saat berikutnya skrip penghapusan dijalankan jika waktu aksesnya adalah 7 hari kemudian (pembersihan semi-otomatis dari$HOME/tmp
direktori).sumber
Di profil Anda,
sumber
rm -I
memberikan yang terbaik dari kedua dunia, @ jlliagre.Sebuah skrip bernama
d
, dengan kontenmv $* /tmp
.sunting: Ini adalah ide yang buruk; Lihat di bawah. Saya saat ini memiliki
alias d='mv -t /tmp'
di.profile
gantinya.sumber
d "foo bar"
akan menghapus filefoo
danbar
). Sesuatu yang lebih aman mungkin#!/bin/bash TRASH="$( mktemp -d -t trashed.XXX )"; echo "Moving to trash $TRASH"; mv -v -- "$@" "$TRASH"
(mktemp
danmv
sintaks tergantung pada sistem Anda, ini bekerja untuk Linux).d
perintah saya menjadialias d='mv -t /tmp'
di saya.profile
; Saya pikir itu solusi sederhana yang saya cari.Kode bash ini menambahkan fungsi
rm
ke~/.bash_profile
file konfigurasi Anda . Setelah menjalankan ini, jika Anda menulisrm file
, Anda akan memindahkan file itu ke/tmp
sumber
rm
ke~/.bash_profile
file konfigurasi Anda . Setelah menjalankan file ini, jika Anda menulisrm file
, Anda akan memindahkan file itu ke/tmp
.