在Linux中删除多个文件?

4
如何在Linux中删除同一日期和时间创建的多个文件? 如何在不使用日期的情况下进行管理? 这些文件具有不同的名称。 我有这些.txt文件:
-rw-r--r-- 1 root root        54 Jan  6 17:28 file1.txt
-rw-r--r-- 1 root root        33 Jan  6 17:28 file2.txt
-rw-r--r-- 1 root root        24 Jan  6 18:05 file3.txt
-rw-r--r-- 1 root root         0 Jan  6 17:28 file4.txt
-rw-r--r-- 1 root root         0 Jan  6 17:28 file5.txt

如何使用一条命令删除所有文件?
3个回答

4

您可以使用find命令并指定时间范围。在您的示例中:如果您想查找所有修改时间戳为1月6日17:28的文件,可以执行以下操作:

find . -type f -newermt '2016-01-06 17:28' ! -newermt '2016-01-06 17:29'

如果您想要删除它们,只需使用finds exec参数即可:
find . -type f -newermt '2016-01-06 17:28' ! -newermt '2016-01-06 17:29' -exec rm {} \;

如果你只想处理*.txt文件,可以包括-name '*.txt'参数,并检查maxdepth参数,以避免处理子目录。


2

只需使用rm -f file*.txt命令即可删除所有以"file"开头且以.txt扩展名结尾的文件。


谢谢。它能工作,但是有一个问题,终端每次删除时都会询问:rm: remove regular file file1.txt'? rm: remove regular file file2.txt'? rm: remove regular file file3.txt'? rm: remove regular empty file file4.txt'? rm: remove regular empty file `file5.txt'?有没有什么属性或解决方案可以避免这种情况? 我的意思是为什么它每次都要询问。 如果需要处理大量文件的删除操作,这将花费太多时间,因为它每次都会询问是否删除文件。有没有相应的解决方案? - Bhushan Ahire
1
使用选项 -f --> rm-rf file*.txt,这样你就不会再收到这个问题了。 - Jens
谢谢,现在它正在实际的轨道上了.. :-) - Bhushan Ahire
2
@Jens rm -f file*.txt就足够了,他为什么需要使用-r递归标志?他正在删除文件,而不是目录。 - stek29

0
如果您知道文件修改的分钟数,则可以使用find命令删除所有文件。假设文件最后一次修改是十分钟前。那么您可以使用以下命令:
find -iname "*.txt" -mmin 10 -ok rm {} \;

如果您不需要在删除之前提示,则可以使用 -exec
 find -iname "*.txt" -mmin 10 -exec rm {} \;

如果您需要通过访问时间删除文件,则可以使用-amin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接