没有日志,但如果你想要......
您可以在递归和监视模式下使用inotify
库:
inotifywait -e delete --timefmt %c --format '%T %_e %w %f' -r -m / >/path/logfile
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
Fri Jul 19 11:57:39 2013 DELETE /tmp/ testfiletodelete
Fri Jul 19 11:57:46 2013 DELETE /home/user/ testfiletodelete
Run Code Online (Sandbox Code Playgroud)
这是一种系统管理员方法:所有用户、所有目录和安装点...
警告这可能有点矫枉过正,请仔细阅读手册页并添加一些选项,例如--exclude
rm
命令你可以添加一些东西到你的.bashrc
...
rm
从删除转变为移至垃圾箱命令mkdir -p $HOME/.Trashcan
rm() {
local destdir=$(mktemp -d $HOME/.Trashcan/trash-XXXXXXXXX);
mkdir $destdir/files
echo $0 $@ >$destdir/command
set >$destdir/environ
mv -t $destdir/files $@
}
Run Code Online (Sandbox Code Playgroud)
因此,每次您输入rm
bash 时,文件都会被移动到一个目录,命令和环境也会被保存。
由于每个目录rm
都会创建一个日期正确的新目录,因此无需使用date
.
rm
。但如果您只想在用户级别记录您的操作:
rm() {
date >>$HOME/.rm.log +"%a %d %b %Y %T: rm $@"
/bin/rm $@
}
Run Code Online (Sandbox Code Playgroud)
可以完成这项工作。
注释1
正如 @slhck 正确所说:重新定义常用命令可能会给新用户带来不好的习惯,因此,如果您修改此类标准命令,当您在另一个系统上工作时,一定不要忘记这一点!
诺塔2
此补丁仅rm
由交互式用户 shell 运行的命令。您可以编辑/etc/bashrc
以使它们适用于所有用户,但只有bash工具才会受到影响。
unlink
如果示例中删除了文件perl
,则不会对此进行记录。
或者即使调用ksh
, dash
or else 而不是 bash...也没有日志。
诺塔3
为了访问原始命令,而不是alias
个人命令function
,您必须精确的完整路径: /bin/rm myfile
将删除myfile
但绕过rm
功能,不会记录任何内容。
归档时间: |
|
查看次数: |
23522 次 |
最近记录: |