Linuxɾ³ýÎļþβ²¿Êý¾ÝµÄÊÊÓÃÒªÁì
ÎÊÌ⣺Linuxɾ³ýÎļþβ²¿Êý¾ÝµÄÊÊÓÃÒªÁì
ÔÚLinuxϵͳÖУ¬¾³£»áÓöµ½ÐèҪɾ³ýÎļþβ²¿Êý¾ÝµÄÇéÐΣ¬ÌØÊâÊǵ±ÎļþÖб£´æһЩÎÞЧ»ò²»ÐèÒªµÄÊý¾Ýʱ¡£±¾ÎĽ«ÏÈÈݼ¸ÖÖÊÊÓõÄÒªÁìÀ´É¾³ýÎļþβ²¿Êý¾Ý£¬Í¬Ê±ÌṩÏêϸµÄ´úÂëʾÀý×ÊÖú¶ÁÕß¿ìËÙʵÑé¡£
ÒªÁìÒ»£ºÊ¹ÓÃtruncateÏÂÁî
truncateÊÇÒ»¸öÓÃÓڽضÏÎļþ¾ÞϸµÄÏÂÁ¿ÉÒÔ½«Îļþ½Ø¶Ïµ½Ìض¨³¤¶È¡£Í¨¹ýÖ¸¶¨Òª½Ø¶ÏµÄÎļþ³¤¶È£¬¿ÉÒÔɾ³ýÎļþβ²¿µÄÊý¾Ý¡£ÏÂÃæÊÇÒ»¸öʾÀý´úÂ룺
# ½Ø¶ÏÎļþµ½Ö¸¶¨³¤¶È truncate -s -[×Ö½ÚÊý] [ÎļþÃû]
µÇ¼ºó¸´ÖÆ
ÒªÁì¶þ£ºÊ¹ÓÃddÏÂÁî
ddÏÂÁîÔÚLinuxÖÐÊÇÒ»¸öºÜÊÇÇ¿Ê¢µÄ¹¤¾ß£¬¿ÉÒÔÓÃÀ´¿½±´Îļþ¡¢×ª»»ÃûÌÃÒÔ¼°½ØÈ¡ÎļþµÈ¡£Í¨¹ýddÏÂÁî¿ÉÒÔʵÏÖɾ³ýÎļþβ²¿Êý¾ÝµÄ¹¦Ð§¡£ÏÂÃæÊÇÒ»¸öʾÀý´úÂ룺
# »ñÈ¡Îļþ¾Þϸ filesize=$(stat -c "%s" [ÎļþÃû]) # ÅÌËãɾ³ýµÄ×Ö½ÚÊý delete_bytes=[Ҫɾ³ýµÄ×Ö½ÚÊý] total_bytes=$(($filesize - $delete_bytes)) # ʹÓÃddɾ³ýÎļþβ²¿Êý¾Ý dd if=[ÎļþÃû] of=[ÐÂÎļþÃû] bs=1 count=$total_bytes
µÇ¼ºó¸´ÖÆ
ÒªÁìÈý£ºÊ¹ÓÃsedÏÂÁî
sedÊÇÒ»¸öÁ÷±à¼Æ÷£¬¿ÉÒÔÓÃÀ´¶ÔÎı¾¾ÙÐÐÌæ»»¡¢É¾³ýµÈ²Ù×÷¡£Í¨¹ýsedÏÂÁîÍŽáÕýÔò±í´ïʽ£¬¿ÉÒÔʵÏÖɾ³ýÎļþβ²¿Êý¾ÝµÄÄ¿µÄ¡£ÏÂÃæÊÇÒ»¸öʾÀý´úÂ룺
# ɾ³ýÎļþβ²¿Êý¾Ý sed -i '$d' [ÎļþÃû]
µÇ¼ºó¸´ÖÆ
ÒªÁìËÄ£ºÊ¹ÓÃawkÏÂÁî
awkÊÇÒ»¸öÇ¿Ê¢µÄÎı¾´¦Öóͷ£¹¤¾ß£¬¿ÉÒÔÓÃÀ´ÌáÈ¡ºÍ´¦Öóͷ£Îı¾ÄÚÈÝ¡£Í¨¹ýawkÏÂÁî¿ÉÒÔʵÏÖɾ³ýÎļþβ²¿Êý¾ÝµÄ¹¦Ð§¡£ÏÂÃæÊÇÒ»¸öʾÀý´úÂ룺
# »ñÈ¡Îļþ×ÜÐÐÊý line_count=$(wc -l < [ÎļþÃû]) # ɾ³ý×îºóÒ»ÐÐ head -n $(($line_count - 1)) [ÎļþÃû] > [ÐÂÎļþÃû]
µÇ¼ºó¸´ÖÆ
×ÛÉÏËùÊö£¬±¾ÎÄÏÈÈÝÁËËÄÖÖÔÚLinuxϵͳÖÐɾ³ýÎļþβ²¿Êý¾ÝµÄÊÊÓÃÒªÁ죬°üÀ¨Ê¹ÓÃtruncate¡¢dd¡¢sedºÍawkÏÂÁî¡£¶ÁÕß¿ÉÒÔƾ֤×Ô¼ºµÄÐèÇóÑ¡ÔñÊʺϵÄÒªÁ죬ͬʱͨ¹ýÌṩµÄ´úÂëʾÀý¾ÙÐÐÏÖʵ²Ù×÷¡£Ï£ÍûÒÔÉÏÄÚÈÝÄܹ»×ÊÖú¶ÁÕß½â¾öÏÖʵÎÊÌ⣬Ìá¸ßÊÂÇéЧÂÊ¡£
ÒÔÉϾÍÊÇLinuxɾ³ýÎļþβ²¿Êý¾ÝµÄÊÊÓÃÒªÁìµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡