Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

序文:

Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題は、通常、実行時に rm -rf を使用することが多いことです。これは非常に危険です。コマンドが誤って実行されたり、ディレクトリが誤って実行されたりすると、多くの問題が発生します。少なくとも、残業や人的資源と物的資源の浪費につながります。最悪の場合、会社の業務に影響を及ぼし、解雇のリスクにつながることもあります。Windows のごみ箱メカニズムは非常に優れた戦略ですが、Linux にはそれがありません。手動でごみ箱を作成し、直接実行することができます。

mkdir -p ~/.ゴミ箱
猫 >>~/.bashrc<<EOF
#caimengzhi による $(date +%F) の Linux ゴミ箱開始時の追加
エイリアス rm=ゴミ箱
エイリアス rl='ls ~/.Trash' 
エイリアス ur=undelfile
ファイル削除() 
{ 
 mv -i ~/.ゴミ箱/\$@ ./ 
} 
ごみ() 
{ 
 mv \$@ ~/.ゴミ箱/ 
}
ゴミ箱をクリアする() 
{ 
  read -p "ゴミを消去しますか?[n]" 確認 
[ \$confirm == 'y' ] || [ \$confirm == 'Y' ] && /usr/bin/rm -rf ~/.Trash/* 
}
#caimengzhi による $(date +%F) の Linux ゴミ箱終了時の追加
終了
ソース ~/.bashrc

例:

1. ~/.Trashは削除されたファイルやフォルダが移動される場所、つまりごみ箱です。

2. \$confirm は検証を実装することを意味します。つまり、ファイル内の最後の項目は $confirm になります。その中で、\$@は同じです

3. 上記の機能は、簡単に言えば、コマンド rm の名前を変更することです。

使用する構文:

rm (削除)、ur (元に戻す)、rl (ごみ箱の一覧表示)、cleartrash (ごみ箱を空にする) コマンド。

#フォルダを削除すると、ファイルはごみ箱に移動されます。

$rm ディレクトリ

#ファイルを削除する

$rm ファイル.txt

#file.txt の削除を元に戻す

$ur ファイル.txt

#filedirctoryフォルダを削除します

$ur ファイルディレクトリ

# ごみ箱を一覧表示する

$rl

#ごみ箱を空にする

クリアトラッシュ

OK、これが基本的な内容です。本質的には、ルート ユーザーの rm コマンドを mv コマンドに置き換えるだけです。システムに他のユーザーが設定されている場合、そのユーザーを使用して上記のコマンドを再実行する必要があります。状況によって異なります。ルート権限を失った場合、rm -rf の威力は恐れる必要はありません。もちろん、通常の rm コマンドも実行する必要があります。どうすればいいでしょうか? これは問題ありません。

/usr/bin/rm -rf

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Trash-Cli: Linux のコマンドラインごみ箱ツール
  • Linux のごみ箱スクリプトを作成するための 101 個のスクリプト
  • Linux は suid vim.basic ファイルを使用して権限昇格を実現します。
  • Linux での中国語入力方法の問題を素早く解決する
  • MySQL を使用してポート 3306 を開いたり変更したり、Ubuntu/Linux 環境でアクセス許可を開く
  • Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明
  • Linux サーバーのグラフィック カードのクラッシュの解決策

<<:  mysqlタイムスタンプの使用

>>:  Vue.js のミックスインの詳細な説明

推薦する

HTML におけるスクリプトの配置に関する簡単な説明

以前は、スクリプトは HTML 内のどこにでも配置できると思っていましたが、今日、要件に取り組んでい...

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

Ubuntu 18.04はルート権限を取得し、ルートユーザーとしてログインします

事前に書いておきます:次の手順では、ターミナルにコマンドを入力する必要があります。コンピューターでブ...

HTML フォームを送信するいくつかの方法_PowerNode Java Academy

方法1: 送信ボタンから送信する <!DOCTYPE html> <html>...

独自の Docker イメージを作成して Dockerhub にアップロードする方法

1. まず、自分のdockerhubアカウントを登録します。登録アドレス: https://hub....

HTML テーブルタグチュートリアル (20): 行の背景色属性 BGCOLOR

BGCOLOR 属性を使用して、行の背景色を設定できます。基本的な構文<TR BGcolor...

MySQL の高可用性アーキテクチャの完全な説明: MHA アーキテクチャ

目次1. はじめに2. 構成3. 作業プロセス4. 建築5. 表示例MHA (Master HA) ...

MySQLの共同クエリ最適化メカニズムの詳細な説明

目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...

JavaScript イベント委任 (プロキシ) の使用例の詳細

目次導入例: イベントの委任記述方法1: イベント委譲書き方2: 各子要素がイベントをバインドする例...

ウェブページを作成する際に注意すべき点

--ホームページのバックアップ1.txtテキスト2. 画像をスキャンする3. PSDデザイン原画(A...

経験者のHTMLの書き方と理由の分析

1. ナビゲーション: 順序なしリストとその他のラベル要素ナビゲーションを記述するために最も一般的に...

React.FCとReact.Componentの使用に関する簡単な説明

目次1. React.FC<> 2. クラスxxはReact.Componentを拡張し...

MySQL における ${param} と #{param} の違い

${param}によって渡されるパラメータは、テーブル名やフィールド名を渡すなど、SQL文の一部と...

JavaScriptの基本的なインタラクションの詳細な説明

目次1. 要素の入手方法文書から入手ID取得クラス名 (className) を取得します。タグ名 ...