$ pwd
/tmp/test
$ trash mfile
trash: cannot trash regular file `mfile'
$ Sudo trash mfile
$
そしてファイルは入りました
$ Sudo ls /.Trash/0/files -la
total 12
drwx------ 2 root root 4096 May 19 16:52 .
drwx------ 4 root root 4096 May 19 16:52 ..
-rw-rw-r-- 1 t t 6 May 19 16:48 mfile
今、私はゴミ箱を空にすることはできません:
$ Sudo trash-empty
$ Sudo ls /.Trash/0/files -la
total 12
drwx------ 2 root root 4096 May 19 16:52 .
drwx------ 4 root root 4096 May 19 16:52 ..
-rw-rw-r-- 1 t t 6 May 19 16:48 mfile
どうすればゴミ箱を空にできますか?
そのゴミ箱にファイルをリストすることもできません
$ Sudo trash-list
[Sudo] password for t:
TrashDir skipped because parent not sticky: /.Trash/0
ありがとう。
この問題の根本的な原因は、マウントされたパーティション用にごみ箱フォルダを作成するときに、 スティッキービット を設定しなくても作成できることだと思います。これは、 "system_internal"マウントパス のいずれかにマウントする場合に当てはまるようです trash-cli に対するこの問題と、シークレットを追加する回避策に関してバグが報告されています--trash-dirオプションがコミットでtrash-empty(2a83ed5)に追加され、スティッキービットチェックをバイパスしてtrash-emptyが指定されたディレクトリを空にできるようになりました。この手がかりは、私たちを最も簡単な解決策に導きます。コマンドchmod +t /mount/point/.Trash
を使用して、問題のごみ箱フォルダにスティッキービットを設定するだけです。これにより、ごみ箱が意図したとおりに機能するようになります。 Ubuntu16.04とUbuntu18.04の/srv
と/home
と/media/$USER/VolumeName
にマウントされたパーティションでこのアプローチをテストしたところ、期待どおりの結果が得られました。このアプローチは他の `nixesでも機能することを期待しています。
注:このアプローチは、NTFSやFATなどのスティッキービットの設定をサポートしていないファイルシステムでは機能しませんが、EXT2/3 /ではうまく機能します。 4つのファイルシステム。
これらの "system_internal"マウントパスのリストは次のとおりです:
"/", /* we already have "Filesystem root" in Nautilus */
"/bin",
"/boot",
"/compat/linux/proc",
"/compat/linux/sys",
"/dev",
"/etc",
"/home",
"/lib",
"/lib64",
"/libexec",
"/live/cow",
"/live/image",
"/media",
"/mnt",
"/opt",
"/rescue",
"/root",
"/sbin",
"/srv",
"/tmp",
"/usr",
"/usr/X11R6",
"/usr/local",
"/usr/obj",
"/usr/ports",
"/usr/src",
"/usr/xobj",
"/var",
"/var/crash",
"/var/local",
"/var/log",
"/var/log/audit", /* https://bugzilla.redhat.com/show_bug.cgi?id=333041 */
"/var/mail",
"/var/run",
"/var/tmp", /* https://bugzilla.redhat.com/show_bug.cgi?id=335241 */
"/proc",
"/sbin",
"/net",
"/sys",
出典:
-rおよび-fスイッチを含むrmコマンドで削除するだけです。これらは、ごみ箱に入れられたファイルへのディレクトリ(r)とシンボリックリンク(f)を削除します。
rm -rf /.Trash/0/files/*
グロブ展開(*)を忘れないでください。そうしないと、ごみ箱ディレクトリが削除されます。
echo "alias empty='rm -rf /.Trash/0/files/*'" >> ~/.bashrc
これによりエイリアスが作成されるため、コマンドempty
を使用してゴミ箱を空にすることができます。