如何删除目录下的文件

如何删除目录下的文件

我必须删除每个目录中的一个特定文件。

示例:MKRUW、DKRUW、TKRUW 在每个目录中,我需要输入 MKRUW/default/file 并删除 .dat 文件。

答案1

我假设MKRUWDKRUW等是目录。转到每个目录的父目录,然后尝试:

find . -name '*.dat'

如果您对找到的文件列表感到满意.dat并且希望继续删除这些文件,请再次运行相同的搜索,但添加参数以删除文件:

find . -name '*.dat' -exec rm -f {} \;

当然,你可以自由地改变*.dat成不那么通用的东西。例如,如果您只想删除名为 的文件info.dat,则可以使用find . -name 'info.dat'.

答案2

假设MKRUWDKRUWTKRUW是目录,并且在每个目录中,您想要删除匹配的文件default/file/*.dat,并且您正在运行一个相当现代的 shell,您可以使用:

echo {MKRUW,DKRUW,TKRUW}/default/file/*.dat

获取相关文件的名称列表。

当您确信这是要删除的列表时,只需rm替换echo

rm {MKRUW,DKRUW,TKRUW}/default/file/*.dat

这是有效的,因为shell 会通过将参数分解为更多数量的参数(每个匹配条目一个参数)来{...,...,...}扩展(与)。*.dat然后将这些参数传递给命令,在上述情况下分别是echorm。因此,上面的rm命令相当于,但需要的输入量比以下命令少得多:

rm MKRUW/default/file/*.dat DKRUW/default/file/*.dat TKRUW/default/file/*.dat

相关内容