我需要列出今天从单个用户更改(修改)的所有文件。
我试过这个:find -mtime -1
但输出是错误的。你们能告诉我有没有办法列出今天从单个用户那里获得的所有文件?
find . -mtime -1 -printf "%u %p\n" | sort
将递归列出当前目录中的所有文件(和所有者的名称)——按所有者分组——今天已修改。
如果您想按文件的所有者进行分组,您可以添加-user $user
并遍历所有相关用户。如果您想按用户修改文件进行分组,这是不可能的,因为此信息未存储在文件系统或其他地方。
虽然不是最好的解决方案,但可以使用此脚本。
# 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列表进行比较。