0

コマンド 'ls -a' を実行した後、ファイルまたはフォルダーが表示されないようにする独自のシステム コールを実装して、ファイルまたはフォルダーを削除したいと考えています。

基本的に、「ls」や「ls -a」などのコマンドからファイルを隠したいと思います。そして、同じものからそれを再表示します。

つまり、完全に削除したくないということです。ユーザーから非表示にするだけです。

私はそれが何かをしなければならないと考えています

struct file_operations *f_op;

「readdir()」を操作することで、実際にファイルを非表示にできる場所から。

しかし、私はそれを操作する方法がわかりません。

何か助けはありますか?

PS:- Linux カーネル バージョン 3.5.x x86 64 ビット。/linux/fs/namei.c で変更を行っています

4

1 に答える 1

2

これを行う方法はありません。たとえあったとしても、すべきではありません。

unlink代わりに、ファイルを「元に戻す」ことができるようにしたい場合は、ファイル システムのどこかにフォルダーを用意する必要があります (たとえば、「.Trash」)。ゴミ箱ディレクトリ。「元に戻す」では、ファイルを元に戻すだけです。「ゴミ箱を空にする」などで、実際にハードドライブからファイルのリンクを解除します。

ls -aこれにより、ファイルがそのフォルダーに存在しなくなったため、次のようなコマンドからファイルを「隠す」効果があります。ハードドライブのどこかのゴミ箱フォルダまたはごみ箱に移動されています。

于 2012-10-27T07:05:54.407 に答える