FILE=a.txt
FILE_SIZE = `stat -c %s $FILE`
if [ $FILESIZE >= 1000 ]; then
cp $FILE /tmp/
# How to empty file ?
then
我正在尝试获取文件的大小,如果大小超过限制并且cp那些文件并清空相同的文件
如何实现这一目标?
答案 0 :(得分:1)
echo > $FILE
但请注意,如果某些内容仍在写入文件,则会丢失cp
和echo
之间的输出。
答案 1 :(得分:1)
你最好做一些事情:
mv ${FILE} ${FILE}.staging
因为那将是接近原子的持续时间。
然后mv
将tmp
传递给${FILE}
文件系统,而进程将重新创建新的${FILE}
。
请注意,如果您有一个长期处理过程写入${FILE}.staging
,那么在第一次移动后,它将继续写入{{1}}。
但是,如果你有很多进程打开/写入/关闭你的文件,原子移动可能是最安全的方法。