我正在做一些东西,我在一个文件中存储数据。 但是每次我运行脚本时,它都会被追加到前一个文件中。

我想要帮助我如何删除文件,如果它已经存在。


当前回答

一个单行shell脚本,如果一个文件已经存在,就删除它(基于Jindra Helcl的回答):

[-f file] && rm文件

或者用一个变量:

#!/bin/bash

file="/path/to/file.ext"
[ -f $file ] && rm $file

其他回答

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

 rm -f xyz.csv

像这样的东西是可行的

#!/bin/sh

if [ -fe FILE ]
then 
    rm FILE
fi 

-f检查它是否是常规文件

-e检查文件是否存在

更多信息请参考if

编辑:-e和-f一起使用是多余的,fo单独使用-f也可以

你可以用这个:

#!/bin/bash

file="file_you_want_to_delete"

if [ -f "$file" ] ; then
    rm "$file"
fi

一个单行shell脚本,如果一个文件已经存在,就删除它(基于Jindra Helcl的回答):

[-f file] && rm文件

或者用一个变量:

#!/bin/bash

file="/path/to/file.ext"
[ -f $file ] && rm $file

所以在我的情况下,我想删除一个FIFO文件之前,我再次创建它,所以这为我工作:

#!/bin/bash

file="/tmp/test"
rm -rf $file | true
mkfifo $file

| true将继续脚本,即使没有找到文件。