我们在此名称格式的某个文件夹中有一些文件 BKK-20170428082153.war
我们需要删除当前日期之前一周的所有文件。
我已尝试过此命令find . -name "*.war" -type f -delete
,但它没有检查我想要的日期规则。
任何人都可以帮助我。
答案 0 :(得分:1)
给出的答案非常好,应该为您服务。
我仍然希望基于文件名删除而不是基于时间戳尝试此操作。
alias delete-weeks-war='for i in {1..7};do rm BKK-`date -v-${i}d +%Y%m%d`*.war; done'
$ cd wars-directory
$ delete-weeks-war # simple as ... that
# traverses the last seven days starting from yesterday
# set to 0..6 to start from today
for i in {1..7}
do
# calculates timestamp, only the part of year, month, day
t=`date -v-${i}d +%Y%m%d`
# builds the expected file name
# to cover all combinations for hour, time and seconds there is the asterisk
file="BKK-${t}*.war"
# removes the designated files
rm $file
# if no files found you will get an error like
# rm: BKK-20170428*.war: No such file or directory
# to get rid of this error message use the following rm instead of the previous
# rm $file 2>/dev/null
done
我相信它完全符合您的需求。
答案 1 :(得分:0)
您可以使用public void share(String song){
File audio = new File("android.resource://com.dsbsoft.myApp/raw/+song+ ".mp3");
Intent share = new Intent(Intent.ACTION_SEND).setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(audio));
startActivity(Intent.createChooser(share, "Share song"));
}
:
所以你想使用-ctime
find . -ctime -7
检查"更改文件状态信息"。还有ctime
检查"上次访问时间"和atime
检查"最后修改时间"。有关更多详细信息,请参阅find的手册页。
答案 2 :(得分:0)
a
+ time
==访问或阅读文件,或-atime
c
+ time
==更改文件属性或修改,或-ctime
m
+ time
==更改文件内容或修改,或-mtime
+
意味着比特定时间更长,例如:+7
-
表示不到特定时间,例如-7
number
正好表示该号码,例如7
出于您的目的(基于修改内容):
find . -name '*.war' -type f -mtime +7