3

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

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

4

3 回答 3

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

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

于 2013-09-14T12:58:21.883 回答
2

如果您想按文件的所有者进行分组,您可以添加-user $user并遍历所有相关用户。如果您想按用户修改文件进行分组,这是不可能的,因为此信息未存储在文件系统或其他地方。

于 2013-09-14T12:45:24.290 回答
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

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

于 2013-09-14T12:54:58.627 回答