linux文件处理命令(mkdir、touch、rm、mv、cp)

发布时间:2019-08-02编辑:脚本学堂
本文介绍了linux系统中文件处理命令的用法,包括 mkdir、touch、rm、mv、cp命令的用法,用于文件或目录的创建、删除、移动与复制等,需要的朋友参考下。

linux文件与目录的操作,有非常强大的管理命令。

在这里,文件处理表示复制,移动以及删除文件。稍后,将讨论linux下更改文件属性(所有者、权限)的方法。

一,mkdir、touch:创建空的目录和文件

mkdir (创建目录(MaKe DIRectory))的作用是创建目录。其语法十分简单:

mkdir [选项] <目录> [目录 ...]
要注意其中的 -p 选项。它完成两件事:

它会创建原本不存在的上级目录。如果没有使用这个选项,mkdir 将会出错,并提示上级目录不存在。

如果您想要创建的目录已经存在,它将安静地返回。同样,如果没有使用 -p 选项,mkdir 会给出目录已经存在的错误提示。

例如:
 

mkdir foo:在当前目录创建一个叫 foo 的目录;
mkdir -p images/misc docs:在 images 目录里创建 misc 目录。如果 images 不存在的话,它会首先创建该目录(-p);同时,还会在当前目录创建叫做 docs 的目录。

起先,touch 不是用来创建文件而是用来更新文件的访问和修改时间的[3]。不过,如果文件不存在,touch 会创建相应的空文件。其语法为:

touch [选项] 文件 [文件...]
因次,下述命令:
touch file1 images/file2
将视这些文件是否事先存在,而在当前目录创建一个叫做 file1 的空文件,并在 images 目录创建空文件 file2。

二,rm:删除文件或目录

rm 命令(删除(ReMove))是 DOS 下del 和 deltree 命令的替代品,并增添了许多选项。其语法如下:

rm [选项] <文件|目录> [文件|目录...]
选项包括:

-r 或 -R:递归删除。要删除目录,该选项是必需的,而不论其是否为空。不过您也可以用 rmdir 来删除空目录。

-i:要求在每个删除之前确认。请注意,为了安全 Mandrakelinux 在默认情况下,rm 是 rm -i 的别名(同样的别名也用于 cp 和 mv)。不过您可能有不同的喜好。要禁用它们,您可以通过创建空文件 ~/.alias 来禁用系统级别名。另外,您也可以编辑您的 ~/.bashrc 文件来禁用某些系统级别名。只要加上下述行: unalias rm cp mv

-f (与 -i 正相反):强制删除文件或目录,即使该用户没有对这些文件的写权限[4]。

例如:
 

rm -i images/*.jpg file1:删除 images 目录中所有文件名以 .jpg 结尾的文件和当前目录中的 file1 文件,并要求对每个删除进行确认。确认时键入 y 表示同意删除,n 表示取消。
rm -Rf images/misc/ file*:删除 images/ 目录中的整个 misc/ 目录而不要求确认,同时也删除当前目录中所有文件名以 file 开头的文件。

[Warning] 警告
使用 rm 删除的文件无法恢复!(不过,确实有一些方法可以恢复文件,不过那可很不简单。)请使用 -i 选项,以免您不小心删除了不该删除的文件。

三,mv:移动或重命名文件
mv (移动(MoVe))命令语法如下:
mv [选项] <文件|目录> [文件|目录 ...] <目的地>
一些选项:
-f:强制执行 ––覆盖已有文件前不警告。
-i:相反。在覆盖已有文件之前请求用户确认。
-v:详细模式--报告所有更改和行动。

例如:
 

mv -i /tmp/pics/*.png .:将 /tmp/pics/ 目录中所有以 .png 结尾的文件移动到当前目录(.),如果当前目录存在同名文件则要求确认。(www.jb200.com 脚本学堂)
mv foo bar:将文件 foo 重命名为 bar。如果存在 bar 目录,则将 foo 文件或者整个 foo 目录(该目录本身及其所有子目录和所有其中的文件)移入 bar 目录。
mv -vf file* images/ trash/:不提示而将当前目录中的所有以 file 开头的文件和整个 images/ 目录移动到 trash/ 目录,并显示每一步操作。

四,cp:复制文件和目录
cp (复制(CoPy)) 同 DOS 下的 copy 和 xcopy 相同,并增加了一些选项。其语法如下:
cp [选项] <文件|目录> [文件|目录 ...] <destination>
cp 有许多选项。在此仅列举最常用的几个:

-R:递归复制;对复制目录是必需的,即使只是一个空目录。
-i:覆盖文件之前要求确认。
-f:同 -i 相反,在覆盖文件之前毋需确认。
-v:详细模式,显示 cp 执行的每一步动作。

例如:
 

cp -i /timages/* images/:将 /timages/ 目录中的所有文件复制到当前目录中的 images/ 目录里。覆盖之前要求确认。
cp -vR docs/ /shared/mp3s/* mystuff/:将整个 docs 目录以及 /shared/mp3s 目录里所有文件复制到 mystuff 目录。
cp foo bar:在当前目录创建 foo 文件的副本 bar。

[3] 在 UNIX? 里,每个文件有三个不同的时间戳:文件最后访问日期(atime),即文件最后一次被打开阅读或更改的日期;
inode 属性最后修改日期(mtime);以及文件内容最后被修改的时间(ctime)。

[4] 只要该用户对这个目录有写权限,他就能够删除其中的文件,即使他不是这些文件的所有者。