Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个bash程序,只列出去年修改过的文件_Bash - Fatal编程技术网

创建一个bash程序,只列出去年修改过的文件

创建一个bash程序,只列出去年修改过的文件,bash,Bash,我想创建一个bash程序,它只列出去年修改过的文件 提示:ls的-l输出将非常有用 这是我的课堂练习,但我不知道如何开始。请帮忙。 提前感谢。出于测试目的,您可以使用touch命令创建一个日期为去年的文件: touch oldFile -d "Mar 9 2017" 然后您可以使用grep和date命令,如下所示: ls -l -1 | grep "$(date "+%Y" --date="1 year ago")" 其中date“+%Y”--date=“1年前”将扩展到上一年,即2017。

我想创建一个bash程序,它只列出去年修改过的文件

提示:ls的
-l
输出将非常有用

这是我的课堂练习,但我不知道如何开始。请帮忙。
提前感谢。

出于测试目的,您可以使用
touch
命令创建一个日期为去年的文件:

touch oldFile -d "Mar 9 2017"
然后您可以使用
grep
date
命令,如下所示:

ls -l -1 | grep "$(date "+%Y" --date="1 year ago")"
其中
date“+%Y”--date=“1年前”
将扩展到上一年,即
2017
。结果:

-rw-rw-r-- 1 userX userX 0 Mar 9 2017 oldFile
-rw-rw-r--1 userX userX 0 2017年3月9日oldFile根据Cyrus的链接,不解析
ls
输出,我建议使用:

find . -type f -newermt 2017-01-01 ! -newermt 2017-12-31 -ls
不是
-l
,而是
-ls

或者,为了得到明年同样有效的问题的真正答案:

#!/bin/bash
last_year=$(date +%Y -d "1 year ago")
yearstart=$(date  +%Y-%m-%d -d "1 january")
find . -type f -newermt $last_year-01-01 ! -newermt $yearstart -ls

目标是在问题中添加一些自己的代码,以至少显示您自己为解决此问题所做的研究工作。建议您的老师和您自己阅读: