列出单个用户今天更改/修改的文件

时间:2013-09-14 12:35:50

标签: linux bash shell unix

我需要列出今天从单个用户更改(修改)的所有文件。

我试过这个:find -mtime -1但是输出错了。你们可以告诉我有没有办法列出今天从单个用户那里获得的所有文件?

3 个答案:

答案 0 :(得分:3)

find . -mtime -1 -printf "%u %p\n" | sort

将递归列出当前目录中的所有文件(以及所有者的名称) - 按所有者分组 - 今天已修改。

答案 1 :(得分:2)

如果您希望按文件所有者进行分组,则可以添加-user $user并循环覆盖所有相关用户。如果您希望按用户修改文件进行分组,则无法进行分组,因为此信息未存储在文件系统或其他位置。

答案 2 :(得分:0)

虽然不是最佳解决方案,但可以使用此脚本。

# Check for files modified within past 24 hrs.

modifiedfiles=`find . -mtime -0`
username=`pwd | cut -d'/' -f2` # pwd is your current directory /home/user/

for i in $modifiedfiles
  do 
    check=`grep  $i /home/user/.bash_history`
      if [ "$check" != " " ] 
      then 
        echo "file $i modified by $username "
      fi
  done

其中用户在路径/家庭/用户中是特定用户。 .bash_history 文件内容与 modifiedfiles 列表进行比较。