📄 ch24_01.htm
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 24] Other Ways to Get Disk Space</TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly & Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly & Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:41:25Z"><METANAME="DC.type"CONTENT="Text.Monograph"><METANAME="DC.format"CONTENT="text/html"SCHEME="MIME"><METANAME="DC.source"CONTENT="1-56592-260-3"SCHEME="ISBN"><METANAME="DC.language"CONTENT="en-US"><METANAME="generator"CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"><LINKREV="made"HREF="mailto:online-books@oreilly.com"TITLE="Online Books Comments"><LINKREL="up"HREF="part03.htm"TITLE="III. Working with the Filesystem "><LINKREL="prev"HREF="ch23_22.htm"TITLE="23.22 Using find to Clear Out Unneeded Files "><LINKREL="next"HREF="ch24_02.htm"TITLE="24.2 Save Space with Bit Bucket Log Files and Mailboxes"></HEAD><BODYBGCOLOR="#FFFFFF"TEXT="#000000"><DIVCLASS="htmlnav"><H1><IMGSRC="gifs/smbanner.gif"ALT="UNIX Power Tools"USEMAP="#srchmap"BORDER="0"></H1><MAPNAME="srchmap"><AREASHAPE="RECT"COORDS="0,0,466,58"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="467,0,514,18"HREF="jobjects/fsearch.htm"ALT="Search this book"></MAP><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch23_22.htm"TITLE="23.22 Using find to Clear Out Unneeded Files "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 23.22 Using find to Clear Out Unneeded Files "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 24</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch24_02.htm"TITLE="24.2 Save Space with Bit Bucket Log Files and Mailboxes"><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 24.2 Save Space with Bit Bucket Log Files and Mailboxes"BORDER="0"></A></TD></TR></TABLE> <HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="CHAPTER"><H1CLASS="chapter"><ACLASS="title"NAME="UPT-CHP-24">24. Other Ways to Get Disk Space</A></H1><DIVCLASS="htmltoc"><P><B>Contents:</B><BR><ACLASS="sect1"HREF="#UPT-ART-1730"TITLE="24.1 Instead of Removing a File, Empty It ">Instead of Removing a File, Empty It </A><BR><ACLASS="sect1"HREF="ch24_02.htm"TITLE="24.2 Save Space with Bit Bucket Log Files and Mailboxes">Save Space with Bit Bucket Log Files and Mailboxes</A><BR><ACLASS="sect1"HREF="ch24_03.htm"TITLE="24.3 Unlinking Open Files Isn't a Good Idea ">Unlinking Open Files Isn't a Good Idea </A><BR><ACLASS="sect1"HREF="ch24_04.htm"TITLE="24.4 Save Space with a Link ">Save Space with a Link </A><BR><ACLASS="sect1"HREF="ch24_05.htm"TITLE="24.5 Limiting File Sizes ">Limiting File Sizes </A><BR><ACLASS="sect1"HREF="ch24_06.htm"TITLE="24.6 Save Space with Tab Characters ">Save Space with Tab Characters </A><BR><ACLASS="sect1"HREF="ch24_07.htm"TITLE="24.7 Compressing Files to Save Space ">Compressing Files to Save Space </A><BR><ACLASS="sect1"HREF="ch24_08.htm"TITLE="24.8 Save Space: tar and compress a Directory Tree ">Save Space: tar and compress a Directory Tree </A><BR><ACLASS="sect1"HREF="ch24_09.htm"TITLE="24.9 How Much Disk Space? ">How Much Disk Space? </A><BR><ACLASS="sect1"HREF="ch24_10.htm"TITLE="24.10 zloop: Run a Command on Compressed Files ">zloop: Run a Command on Compressed Files </A><BR><ACLASS="sect1"HREF="ch24_11.htm"TITLE="24.11 Edit Compressed Files with zvi, zex, and zed ">Edit Compressed Files with zvi, zex, and zed </A><BR><ACLASS="sect1"HREF="ch24_12.htm"TITLE="24.12 Compressing a Directory Tree: Fine-Tuning ">Compressing a Directory Tree: Fine-Tuning </A><BR><ACLASS="sect1"HREF="ch24_13.htm"TITLE="24.13 Save Space in Executable Files with strip ">Save Space in Executable Files with strip </A><BR><ACLASS="sect1"HREF="ch24_14.htm"TITLE="24.14 Don't Use strip Carelessly ">Don't Use strip Carelessly </A><BR><ACLASS="sect1"HREF="ch24_15.htm"TITLE="24.15 Trimming a Directory ">Trimming a Directory </A><BR><ACLASS="sect1"HREF="ch24_16.htm"TITLE="24.16 Trimming a Huge Directory ">Trimming a Huge Directory </A><BR><ACLASS="sect1"HREF="ch24_17.htm"TITLE="24.17 Disk Quotas ">Disk Quotas </A><BR><ACLASS="sect1"HREF="ch24_18.htm"TITLE="24.18 Huge Files Might Not Take a Lot of Disk Space ">Huge Files Might Not Take a Lot of Disk Space </A></P><P></P></DIV><DIVCLASS="sect1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-1730">24.1 Instead of Removing a File, Empty It </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-26153"></A><ACLASS="indexterm"NAME="AUTOID-26156"></A><ACLASS="indexterm"NAME="AUTOID-26158"></A><ACLASS="indexterm"NAME="AUTOID-26161"></A>Sometimes you don't want to remove a file completely - you just want toempty it:</P><ULCLASS="itemizedlist"><LICLASS="listitem"><PCLASS="para">When you remove a file and create a new one with the same name, thenew file will have your<SPANCLASS="link">default permissions (<ACLASS="linkend"HREF="ch22_04.htm"TITLE="Setting an Exact umask ">22.4</A>)</SPAN>and<SPANCLASS="link">ownership (<ACLASS="linkend"HREF="ch22_03.htm"TITLE="Who Will Own a New File? ">22.3</A>)</SPAN>.It's better to empty the file now, then add new text later; this won'tchange the permissions and ownership.</P></LI><LICLASS="listitem"><PCLASS="para">Completely empty files (ones that <EMCLASS="emphasis">ls -l</EM> says have zero characters)don't take any disk space to store(except the few bytes that the<SPANCLASS="link">directory entry (<ACLASS="linkend"HREF="ch18_02.htm"TITLE="What's Really in a Directory ">18.2</A>)</SPAN>uses).</P></LI><LICLASS="listitem"><PCLASS="para">You can use the empty files as "place markers" to remind you thatsomething was there or belongs there.Some UNIX logging programs won't write errorsto their log files unless thelog files already exist.Empty files work fine for that.</P></LI><LICLASS="listitem"><PCLASS="para">Empty files hold a "timestamp" (just as files with text do)that shows when the file was last modified.I use empty files in some directories to remind me when I've last donesomething (backups,<SPANCLASS="link">printouts (<ACLASS="linkend"HREF="ch21_09.htm"TITLE="Keep File Printouts Up-to-Date Automatically with make">21.9</A>)</SPAN>,etc.).The<SPANCLASS="link"><EMCLASS="emphasis">find -newer</EM> (<ACLASS="linkend"HREF="ch17_08.htm"TITLE="Exact File Time Comparisons ">17.8</A>, <ACLASS="linkend"HREF="ch17_09.htm"TITLE="Problems with -newer ">17.9</A>)</SPAN>command can compare other files to a timestamp file.</P></LI></UL><PCLASS="para">Well, you get the idea by now.</P><PCLASS="para">How can you empty a file?Watch out: when some editors say that a file has "nolines," they may still append a newline character when writing the file.Just one character still takes a block of disk space to store.Better:</P><ULCLASS="itemizedlist"><LICLASS="listitem"><PCLASS="para">In the Bourne shell, the most efficient way is to redirect the output ofa null command:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">$ <CODECLASS="userinput"><B>> afile</B></CODE></PRE></BLOCKQUOTE></P><PCLASS="para"> If the file already exists, that command will truncate the file withoutneeding a subprocess.</P></LI><LICLASS="listitem"><PCLASS="para">In the C shell copy the UNIX empty file,<SPANCLASS="link"><EMCLASS="emphasis">/dev/null</EM> (<ACLASS="linkend"HREF="ch13_14.htm"TITLE="What Can You Do with an Empty File? ">13.14</A>)</SPAN>,on top of the file:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>cp /dev/null afile</B></CODE></PRE></BLOCKQUOTE></P></LI></UL><PCLASS="para">You can also "almost" empty the file, leaving just a few lines, this way:</P><PCLASS="para"><TABLECLASS="screen.co"BORDER="1"><TR><THVALIGN="TOP"><PRECLASS="calloutlist"><ACLASS="co"HREF="ch25_14.htm"TITLE="25.14 How to Look at the End of a File: tail ">tail</A> </PRE></TH><TDVALIGN="TOP"><PRECLASS="screen">% <CODECLASS="userinput"><B>tail afile > tmpfile</B></CODE>% <CODECLASS="userinput"><B>cat tmpfile > afile</B></CODE>% <CODECLASS="userinput"><B>rm tmpfile</B></CODE></PRE></TD></TR></TABLE></P><PCLASS="para">That's especially good for log files that you never want to deletecompletely.Use <EMCLASS="emphasis">cat</EM> and <EMCLASS="emphasis">rm</EM>, not <EMCLASS="emphasis">mv</EM>-<EMCLASS="emphasis">mv</EM> will break the link tothe original file (<CODECLASS="literal">afile</CODE>) and replace it with the temporary file.</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">JP</SPAN></P></DIV></DIV></DIV><DIVCLASS="htmlnav"><P></P><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch23_22.htm"TITLE="23.22 Using find to Clear Out Unneeded Files "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 23.22 Using find to Clear Out Unneeded Files "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="book"HREF="index.htm"TITLE="UNIX Power Tools"><IMGSRC="gifs/txthome.gif"SRC="gifs/txthome.gif"ALT="UNIX Power Tools"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch24_02.htm"TITLE="24.2 Save Space with Bit Bucket Log Files and Mailboxes"><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 24.2 Save Space with Bit Bucket Log Files and Mailboxes"BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">23.22 Using find to Clear Out Unneeded Files </TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="index"HREF="index/idx_0.htm"TITLE="Book Index"><IMGSRC="gifs/index.gif"SRC="gifs/index.gif"ALT="Book Index"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172">24.2 Save Space with Bit Bucket Log Files and Mailboxes</TD></TR></TABLE><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><IMGSRC="gifs/smnavbar.gif"SRC="gifs/smnavbar.gif"USEMAP="#map"BORDER="0"ALT="The UNIX CD Bookshelf Navigation"><MAPNAME="map"><AREASHAPE="RECT"COORDS="0,0,73,21"HREF="../index.htm"ALT="The UNIX CD Bookshelf"><AREASHAPE="RECT"COORDS="74,0,163,21"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="164,0,257,21"HREF="../unixnut/index.htm"ALT="UNIX in a Nutshell"><AREASHAPE="RECT"COORDS="258,0,321,21"HREF="../vi/index.htm"ALT="Learning the vi Editor"><AREASHAPE="RECT"COORDS="322,0,378,21"HREF="../sedawk/index.htm"ALT="sed & awk"><AREASHAPE="RECT"COORDS="379,0,438,21"HREF="../ksh/index.htm"ALT="Learning the Korn Shell"><AREASHAPE="RECT"COORDS="439,0,514,21"HREF="../lrnunix/index.htm"ALT="Learning the UNIX Operating System"></MAP></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -