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 "{}"