shell脚本删除文件,如果它已经存在
我正在处理一些将数据存储在文件中的东西。 但每次运行脚本时,都会附加到前一个文件。
如果文件已经存在,我需要帮助。
另一个我使用的命令是:
[ -e file ] && rm file
不要打扰检查文件是否存在,只是试图删除它。 例如: rm -f /p/a/t/h
或rm /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你的输出,它会覆盖前面的文件