Unix/Linux:检查文件系统/var/www/uploads /中的新文件

时间:2020-01-09 10:45:57  来源:igfitidea点击:

所有用户上传的文件都存储在/var/www/uploads /目录中。是否有命令可以给我列出过去7天在类似Linux/Unix的oses上/var/www/uploads /添加到文件系统的文件的列表?您需要使用以下命令:

  • date命令获取系统日期。
  • touch命令使用日期命令创建文件并设置文件时间戳。
  • find命令根据给定条件在文件系统中搜索文件。

步骤1:获取当前日期

执行以下日期命令以根据您的要求获取日期:

## get old date i.e. if today is 27/Jan get 20/Jan in $d ##
d=$(date +"%Y-%m-%d" --date="7 days ago")
echo "$d"

输出示例:

2014-01-20

步骤2:创建一个新文件

输入以下触摸命令:

file="/tmp/test.txt.$$"
touch --date "$d" "$file"
echo "$file"
ls -l "$file"

输出示例:

/tmp/test.txt.17697
-rw-r--r--. 1 theitroad theitroad 0 Jan 20 00:00 /tmp/test.txt.17697

步骤3:列出较新的文件

要在/var/www/upload /目录树中查找比$file(/tmp/test.txt.17697文件)新的文件,请使用find命令,如下所示:

find /var/www/upload/ -newer $file

或者

find /var/www/upload/ -type f -newer $file

或者

find /var/www/upload/ -type f -iname "*.jpg" -newer $file

或者

find /var/www/upload/ -iname "*.jpg" -newer $file -ls

或者bsd/unix安全选项:

find /var/www/upload/ -name "*.jpg" -newer $file -exec ls -l {} \;

输出示例:

15728917   20 -r--r--r--   1 theitroad theitroad    18144 Jan 27 06:47 ./01/last-command-output-300x118.jpg
11534726   92 -r--r--r--   1 theitroad theitroad    91370 Jan 27 06:47 ./01/last-command-output.jpg
11534720   12 -r--r--r--   1 theitroad theitroad     9691 Jan 27 03:44 ./01/who-command.jpg
11534721  104 -r--r--r--   1 theitroad theitroad   104077 Jan 27 04:08 ./01/who-command-output.jpg

用于检查文件系统中新文件的shell脚本

#!/bin/bash
# A quick shell script to show new files added to the file system
# Syntax ./script /path/to/dir days 
# Defaults ./script $PWD 3 
# Author: theitroad <[email protected]> under GPL v2.x+
# ----------------------------------------------------------------
_pwd="$(pwd)"
_now=$(date +"%Y-%m-%d" --date="${2:-3} days ago")
_d="${1:-$_pwd}"
 
# a bad idea but I'm too lazy
_f="/tmp/thisfile.$$"
 
touch --date "$_now" "$_f"
find "$_d" -type f -newer "$_f"
/bin/rm -f "$_f"

输出示例:

./script
/home/theitroad
/home/theitroad/.viminfo
/home/theitroad/.lesshst
/home/theitroad/.bash_history

./script 7 /var/www/uploads/
/var/www/uploads/who-command-150x119.jpg
/var/www/uploads/last-command-output-150x150.jpg
/var/www/uploads/who-command-output-150x150.jpg
/var/www/uploads/ubuntu-find-ip-address-ip-command-300x64.png
/var/www/uploads/redhat-rhel-version-release-command.png

查找命令mtime选项

传递-mtime n选项来查找命令以获取文件数据,该数据是n * 24小时前最后一次修改的,因此:

## List files uploaded in last 3 days directly using find command ###
## GNU/Linux specific example ##
find /var/www/uploads/ -iname "*.jpg" -type f -mtime -3 -ls

或者尝试以下bsd/unix特定示例:

## list files uploaded in last 3 days directly using find command ###
find . -iname "*.jpg" -type f -mtime -3 -print0 | xargs -I {} -0 ls -l "{}"