📄 s1-managing-working-with-files.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>在 shell 提示下操作文件</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Red Hat Linux 9"HREF="index.html"><LINKREL="UP"TITLE="管理文件和目录"HREF="ch-managers.html"><LINKREL="PREVIOUS"TITLE="文件压缩和归档"HREF="s1-managing-compressing-archiving.html"><LINKREL="NEXT"TITLE="安装和更新 Red Hat Linux 软件包"HREF="ch-updating-pkgs.html"><LINKREL="STYLESHEET"TYPE="text/css"HREF="rhdocs-man.css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=gb2312"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Red Hat Linux 9: Red Hat Linux 入门指南</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="s1-managing-compressing-archiving.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">14. 管理文件和目录</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="ch-updating-pkgs.html"ACCESSKEY="N">前进</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="S1-MANAGING-WORKING-WITH-FILES"></A>14.4. 在 shell 提示下操作文件</H1><P>你可以使用 <BCLASS="APPLICATION">Nautilus</B> 或 <BCLASS="APPLICATION">Konqueror</B>之类的图形化文件管理器来操作文件。你还可以使用 shell 提示来操作它们,这种方法通常较快。下面的章节解释了在 shell 提示下操作文件的方法。 </P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-MANAGING-TOUCH"></A>14.4.1. 创建文件</H2><P>你可以通过应用程序(如文本编辑器)或使用 <TTCLASS="COMMAND">touch</TT>命令来创建新文件。这两种方法都会创建一个空白的文件,你可以在其中添加文本或数据。要使用<TTCLASS="COMMAND">touch</TT> 命令来创建文件,在 shell 提示下键入以下命令:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">touch <TTCLASS="REPLACEABLE"><I><文件名></I></TT></TT></PRE></TD></TR></TABLE><P>把 <TTCLASS="REPLACEABLE"><I><文件名></I></TT> 替换成你选定的名称。如果你列举一下目录内容,你会看到该文件的大小为零,这是因为它是一个空文件。譬如,在shell 提示下键入命令 <TTCLASS="COMMAND">ls -l newfile</TT>会返回以下输出:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">-rw-rw-r-- 1 test test 0 3月 11 17:09 newfile</TT></PRE></TD></TR></TABLE></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-MANAGING-COPYING"></A>14.4.2. 复制文件</H2><P>和许多 Linux 的功能一样,操作文件和目录的方法也有很多种。你还可以使用通配符(在<AHREF="s1-navigating-files-reading.html#S2-MANAGING-WILD">第 13.11.5 节</A>中有说明)来更快地复制、移动、或删除多个文件。</P><P>要复制文件,键入以下命令: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">cp <TTCLASS="REPLACEABLE"><I><源></I></TT><TTCLASS="REPLACEABLE"><I> <目标></I></TT></TT></PRE></TD></TR></TABLE><P>把<TTCLASS="REPLACEABLE"><I><源></I></TT>替换成你想复制的文件,把<TTCLASS="REPLACEABLE"><I><目标></I></TT>替换成你想保存复制文件的目录名。 </P><P>因此,要把文件 <TTCLASS="FILENAME">sneakers.txt</TT> 复制到你的主目录中的<TTCLASS="FILENAME">tigger/</TT> 目录下,转换到你的主目录,然后键入:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">cp sneakers.txt tigger/</TT></PRE></TD></TR></TABLE><P><TTCLASS="COMMAND">cp</TT> 命令可以使用绝对或相对路径。我们的主目录是<TTCLASS="FILENAME">tigger</TT>的父目录;<TTCLASS="FILENAME">tigger</TT> 是主目录之下的一个目录。</P><DIVCLASS="TIP"><P></P><TABLECLASS="TIP"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/tip.png"HSPACE="5"ALT="窍门"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>窍门</B></TH></TR><TR><TD> </TD><TDALIGN="LEFT"VALIGN="TOP"><P>要进一步学习相对路径名和绝对路径名,请参考<AHREF="s1-navigating-cd.html">第 13.4 节</A>。 </P></TD></TR></TABLE></DIV><P>阅读 <TTCLASS="COMMAND">cp</TT> 的说明书页(在 shell提示下键入<TTCLASS="COMMAND">man cp</TT>)可获得 <TTCLASS="COMMAND">cp</TT>的完整选项列表。其中包括的选项有: </P><P></P><UL><LI><P><TTCLASS="COMMAND">-i</TT> — 互动。如果文件将会覆盖你的目标中的文件,它会提示你确认。这个选项很实用,因为它可以帮助你避免犯错。</P></LI><LI><P><TTCLASS="COMMAND">-r</TT> — 递归。与其一个一个地复制所有指定的文件和目录,这个选项会复制整个目录树、子目录及其它。</P></LI><LI><P><TTCLASS="COMMAND">-v</TT> — 详细。向你显示文件的复制进度。 </P></LI></UL><P>现在,你在 <TTCLASS="FILENAME">tigger</TT> 目录中已拥有了<TTCLASS="FILENAME">sneakers.txt</TT>,再使用一次 <TTCLASS="COMMAND">cp -i</TT> 来把文件复制到同一位置。</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">cp -i sneakers.txt tigger</TT><TTCLASS="COMPUTEROUTPUT">cp: 是否覆盖‘tigger/sneakers.txt’?</TT></PRE></TD></TR></TABLE><P>要覆盖原来的文件,按 <SPANCLASS="KEYCAP"><KEYCAP>[Y]</KEYCAP></SPAN>,然后按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键。如果你不想覆盖原来文件, 按<SPANCLASS="KEYCAP"><KEYCAP>[N]</KEYCAP></SPAN>,然后按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键。</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-MANAGING-MOVING"></A>14.4.3. 移动文件</H2><P>要移动文件,使用 <TTCLASS="COMMAND">mv</TT> 命令。关于 <TTCLASS="COMMAND">mv</TT> 的详情,请参阅<TTCLASS="COMMAND">mv</TT> 的说明书页(键入 <TTCLASS="COMMAND">man mv</TT>)。</P><P><TTCLASS="COMMAND">mv</TT> 的常见选项包括:</P><P></P><UL><LI><P><TTCLASS="COMMAND">-i</TT> — 互动。如果你选择的文件会覆盖目标中的现存文件,它会提示你。这是一个实用的选项,因为它象<TTCLASS="COMMAND">cp</TT> 中的 <TTCLASS="OPTION">-i</TT> 选项一样,会给你一个确认替换已存文件的机会。</P></LI><LI><P><TTCLASS="COMMAND">-f</TT> — 强制。它会超越互动模式,不提示地移动文件。除非你知道自己在干什么,这个选项很危险。在你对系统信心十足之前,请谨慎使用这个选项。</P></LI><LI><P><TTCLASS="COMMAND">-v</TT> — 详细。显示文件的移动进度。 </P></LI></UL><P>如果你想把文件从你的主目录中移到另一个现存的目录中,键入以下命令(你需要位于你的主目录内): </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">mv sneakers.txt tigger</TT></PRE></TD></TR></TABLE><P>另外的方法是,用同一个命令,但使用绝对路径,如:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">mv sneakers.txt /home/newuser/sneakers.txt /home/newuser/tigger</TT></PRE></TD></TR></TABLE></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-MANAGING-DELETING"></A>14.4.4. 删除文件和目录</H2><P>前面你已经学习了使用 <TTCLASS="COMMAND">touch</TT> 命令来创建文件,以及使用<TTCLASS="COMMAND">mkdir</TT> 命令来创建目录 <TTCLASS="FILENAME">tigger</TT>。</P><P>现在,你需要学习如何删除文件和目录。 使用 <TTCLASS="COMMAND">rm</TT>命令来删除文件和目录是一个直截了当的过程。详情请参阅<TTCLASS="COMMAND">rm</TT> 的说明书页。删除文件和目录的选项包括:</P><P></P><UL><LI><P><TTCLASS="COMMAND">-i</TT> — 互动。提示你确认删除。这个选项可以帮助你避免误删文件。</P></LI><LI><P><TTCLASS="COMMAND">-f</TT> — 强制。代替互动模式,不提示地删除文件。除非你知道自己在干什么,使用这个选项通常不是明智之举。</P></LI><LI><P><TTCLASS="COMMAND">-v</TT> — 详细。显示文件的删除进度。 </P></LI><LI><P><TTCLASS="COMMAND">-r</TT> — 递归。将会删除某个目录及其中所有的文件和子目录。</P></LI></UL><P>要使用 <TTCLASS="COMMAND">rm</TT> 命令来删除文件 <TTCLASS="FILENAME">piglet.txt</TT>,键入: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rm piglet.txt</TT></PRE></TD></TR></TABLE><DIVCLASS="WARNING"><P></P><TABLECLASS="WARNING"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/warning.png"HSPACE="5"ALT="警告"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>警告</B></TH></TR><TR><TD> </TD><TDALIGN="LEFT"VALIGN="TOP"><P>一旦文件或目录使用 <TTCLASS="COMMAND">rm</TT> 命令删除后,它就一去不复返了。 </P></TD></TR></TABLE></DIV><P>使用 <TTCLASS="OPTION">-i</TT>(互动)选项会再给你一次机会来决定你是否真的想删除该文件。</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rm -i piglet.txt</TT><TTCLASS="COMPUTEROUTPUT">rm: 是否删除一般文件‘piglet.txt’?</TT></PRE></TD></TR></TABLE><P>你还可以使用通配符“<TTCLASS="COMMAND">*</TT>”来删除文件,不过,你必须谨慎而为,因为它很容易删除你并不想删除的文件。</P><P>要使用通配符来删除文件,可以键入:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rm pig*</TT></PRE></TD></TR></TABLE><P>上面的命令会删除目录中所有起首为 <TTCLASS="FILENAME">pig</TT> 字母的文件。</P><P>你还可以使用 <TTCLASS="COMMAND">rm</TT> 命令来删除多个文件。 例如:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rm piglet.txt sneakers.txt</TT></PRE></TD></TR></TABLE><P>你可以使用 <TTCLASS="COMMAND">rmdir</TT> 来删除目录( 如:<TTCLASS="COMMAND">rmdirfoo</TT>),但是目录必须是空目录。要使用 <TTCLASS="COMMAND">rm</TT> 来删除目录,你必须指定<TTCLASS="OPTION">-r</TT> 选项。</P><P>譬如,如果你想递归地删除目录 <TTCLASS="COMMAND">tigger</TT>,你可以键入:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rm -r tigger</TT></PRE></TD></TR></TABLE><P>如果你想组合选项,例如强制一种递归的删除,你可以键入:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rm -rf tigger</TT></PRE></TD></TR></TABLE><P>另一个比使用 <TTCLASS="COMMAND">rm</TT> 更安全的删除目录的命令是 <TTCLASS="COMMAND">rmdir</TT>命令。这个命令不允许你使用递归删除,因此不能删除包含文件的目录。</P><DIVCLASS="WARNING"><P></P><TABLECLASS="WARNING"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/warning.png"HSPACE="5"ALT="警告"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>警告</B></TH></TR><TR><TD> </TD><TDALIGN="LEFT"VALIGN="TOP"><P><TTCLASS="COMMAND">rm</TT> 命令可以删除你的整个文件系统!如果你登录为根用户,然后键入这个简单命令: <TTCLASS="COMMAND">rm-rf /</TT>,你的麻烦就大了;这个命令会递归地删除你的系统上的一切。</P></TD></TR></TABLE></DIV><P>阅读 <TTCLASS="COMMAND">rmdir</TT> 的说明书页( <TTCLASS="COMMAND">man rmdir</TT>)来获取关于这个命令的详细信息。</P></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="s1-managing-compressing-archiving.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">起点</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="ch-updating-pkgs.html"ACCESSKEY="N">前进</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">文件压缩和归档</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ch-managers.html"ACCESSKEY="U">上级</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">安装和更新 Red Hat Linux 软件包</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -