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

没有办法做到这一点——即使有,你也不应该这样做。

相反,如果您希望能够“取消删除”文件,您应该在文件系统的某处有一个文件夹(例如,“.Trash”),而不是使用unlink或类似的方式删除文件,只需将文件移动到垃圾目录。在“取消删除”时,只需将文件移回即可。在“清空垃圾箱”或其他任何地方,实际上从硬盘驱动器中取消链接文件。

这将产生从命令中“隐藏”文件的效果,ls -a因为该文件不再存在于该文件夹中;它已被移至硬盘驱动器上其他位置的某个垃圾文件夹或回收站。

于 2012-10-27T07:05:54.407 回答