コマンドラインからファイルをゴミ箱に移動するにはtrash-put
を使用します。最近、重要なものを誤って削除しないように、rm
コマンドのエイリアスをtrash-put
に変更しました。
しかし、今起こったのは、/var/log
ファイルシステムの空き容量を増やすために、/
フォルダーからいくつかのファイルを削除する必要があったことです。私はSudo
を使用してこれを行いました:
Sudo rm /var/log/somelog
#Above command is equivalent to:
Sudo trash-put /var/log/somelog
これを行った後、ファイルがごみ箱に移動されている必要があるため、パーティションに回復された空き領域はありませんでした。ただし、ゴミ箱を確認したところ、ファイルがありませんでした。 .Trash-100
パーティションに/
フォルダがあるかどうかを確認しようとしましたが、それもありませんでした。
それで、私のゴミ箱に入れられたファイルはどこに行きましたか?そして、スペースを回復するためにそれを間引くことができるように、どうすればそれを見つけることができますか?
削除したファイルは、実際には別のプロセスによって開かれている可能性があります。その場合、そのプロセスがファイルへのハンドルを閉じると、ファイルスペースが使用可能になります。
これらのファイルはlsof
で検索できます。
lsof |grep "var/log"|grep deleted
Sudo
を使用すると、エイリアスは呼び出されません。
$ alias a=ls
$ Sudo a
Sudo: a: command not found
これは、ファイルがゴミ箱に移動されるのではなく、実際に削除されることを意味します。
ファイルを開いたままにしているプロセスがある場合、それらに書き込むために、ファイルによって使用されたスペースは、それらのプロセスがファイルを閉じるか終了するまで再利用されません。
trash-putのマンページ によると、trash-putはファイルをゴミ箱に置きます。これは FreeDesktop.orgのゴミ箱仕様 で定義されています。
章ゴミ箱ディレクトリでは、ゴミ箱は次のようなフォールバックプロセスに従います。
$XDG_DATA_HOME/Trash
にあるホームトラッシュ。あなたの場合、それはrootの/root/Trash
かもしれません。須藤が$XDG_DATA_HOME
を通過した可能性もあるので、自分のゴミ箱の下で探してみてください。使用されるのはメインのゴミ箱です。$XDG_DATA_HOME
と同じマウントルートを共有しないディレクトリの場合、マウントされたディレクトリの最上位ディレクトリにあるゴミ箱が使用されることがあります。$topdir/.Trash/$UID
を最初に試すことができます。$topdir/.Trash
が存在しない場合)、$topdir/.Trash-$UID
を使用します。あなたの場合、Sudo
がUIDをrootにするので、/.Trash-0
で探してみてください。更新:
「ルートトラッシュ」をビンギングすると、さらに多くのことができます。
本当に古いチュートリアル からgksudo nautilus '/root/.Trash/'
に言及し、ルートの.Trash
の下にある$XDG_DATA_HOME
(fd.oのようにTrash
の代わりに)ディレクトリまずは良いオプションです。
アスカーのリムーバブルディスク用に.Trash-root
が作成される 中国語での本当に古い質問 によると、一部の実装では数値UIDの代わりにユーザー名を使用しています。
コメントと回答で指摘されているように、問題はエイリアスの拡張にあります。
しかし、これには解決策があります。
すべてのエイリアスでSudo
を使用したい場合(したがって、@ Kusalanandaによって指摘された問題を回避する場合)、次のエイリアスをエイリアスファイルに追加できます。
alias Sudo='Sudo '
これを実行した場合、Sudo rm
は予想どおりSudo trash-put
に展開されます。
コマンドの最初の単語としてのみ機能するエイリアスに関する@Dubuからのコメントに答えるには、フラグ-g
をエイリアス定義に追加すると、グローバルになり、コマンド位置になくても機能します。 rm
エイリアスでこれを行うことができます。ただし、Sudo
を使用して他の予期せぬ事態を招きたくない場合は、最初の方法の方が適切です。これは、たとえば、パイプコマンドのエイリアスを設定する場合に関連性があります(例:alias -g pl='| less'
)。
trash-cli
をSudo
と一緒に使用した場合のゴミ箱の場所については、@ Arthur2e5がこれに答えます。私は単にそれを追加できます。私の場合、場所は次のとおりです。
/home/.Trash-0