shell脚本删除文件,如果它已经存在

我正在处理一些将数据存储在文件中的东西。 但每次运行脚本时,都会附加到前一个文件。

如果文件已经存在,我需要帮助。

另一个我使用的命令是:

[ -e file ] && rm file

不要打扰检查文件是否存在,只是试图删除它。 例如: rm -f /p/a/t/hrm /p/a/t/h 2> /dev/null

但更有可能的是,如果您追加到文件,这是因为您的脚本正在使用>>将某些东西redirect到文件中。 只需用>>replace>> 。 因为你没有提供代码,所以很难说。

你可以使用这个:

 #!/bin/bash file="file_you_want_to_delete" if [ -f $file ] ; then rm $file fi 

如果你想忽略检查文件是否存在的步骤,那么你可以使用一个相当简单的命令,如果存在,将会删除文件,如果文件不存在则不会抛出错误。

  rm -f xyz.csv 

像这样的东西会工作

 #!/bin/sh if [ -fe FILE ] then rm FILE fi 

-f检查它是否是普通文件

-e检查文件是否存在

介绍如果获得更多信息

编辑: -e与-f一起使用是多余的,单独使用-f也应该工作

if [ $( ls <file> ) ]; then rm <file>; fi

另外,如果你用>而不是>>redirect你的输出,它会覆盖前面的文件