将文件改为当前时间

touch 命令的主要作用是更新文件的 访问和修改时间 (需要拥有文件的写入权限),如果指向修改文件的访问时间,可以使用 -a 选项;如果只想更新文件的修改时间,可以使用 -m 选项。如下:

touch更新时间

Noticels 命令显示的时间是文件的修改时间,而 touch -a 更新的是文件的访问时间,所以上面例子中的文件a.c的时间没有变化。

将文件改为任意所需的时间

touch 命令可以将文件的时间修改为任意的时间,只需要加上 -t 选项,如下:

touch任意时间

创建空文件

尝试将 touch 命令用于不存在的文件,将会使用指定的名称生成一个空文件,如下:

创建空文件

新建目录

使用 mkdir 命令可以新建一个目录(使用 -v 选项还将显示创建过程),如果创建目录时,该目录已存在,将创建失败。如下:

mkdir

可以看到,我的bash创建的目录默认给的权限是755。

创建新目录以及必要的子目录

如果要创建多层嵌套的子目录,可以使用 mkdir-p 选项,如下:

mkdir -p

可以看到,如果嵌套的根目录不存在时,不使用 -p 选项是无法创建嵌套目录的。而嵌套的根目录存在时,又可以不使用该选项创建其子目录。

复制文件

cp 命令就是用来复制文件和目录的,格式为: cp 源 目的 ,其中源可以是其他工作目录的文件或者目录,目的可以不给定名称,而只给定目的目录(这样目的的名称就是源的名称了)。一个例子如下:

cp

使用通配符复制文件

cp 命令支持使用通配符一次性将多个文件复制过去,同时可以附加选项 -v 可以显示复制的过程,如下:

cp *

防止在复制时覆盖重要文件

如果我们复制同样的文件两次,第二次会覆盖第一次的文件,bash不会有任何提示,为了防止这种没有提示的覆盖,我们可以使用 cp 命令的 -i 选项,会在覆盖之前得到确认提示,如下:

cp -i

复制目录

前面的 cp 源 目的 命令可以复制文件,但是复制目录时将会提示略过,此时我们可以加上 -r 选项(递归复制目录及其内容)来完成目录的复制,如下:

cp -r

为建立完善副本而将文件复制到另一个目录

使用 cp 命令的 -a 选项可以确保不会复制软链接的内容(将会极大的增加复制量),而只保存关键的文件属性(如所有者、时间戳),并递归的处理子目录,一个例子如下:

cp -a

移动文件和文件夹

移动文件和文件夹使用 mv 命令,该命令和 cp 命令类似,也有类似的选项,例如使用 -i 可以在移动时给出覆盖提示, -v 选项可以给出移动的过程。如下:

mv

重命名文件和文件夹

mv 命令处理移动文件和文件夹的功能外,还可以重命名文件和文件夹,如下:

mv重命名

创建指向另一个文件或者目录的链接

Linux存在两种链接: 硬链接和软链接 。使用 ln 命令默认创建硬链接,加上 -s 选项则可以创建软链接。硬链接的原理是:硬链接和源文件有着相同的索引节点,所以通过这个相同的索引节点可以定位到相同的文件。软链接的原理是:软链接有着自己的索引节点,而该节点指向源文件的索引节点,从而定位到源文件。此外,硬链接只能链接文件,不能连接文件夹。下面是一个实例:

ln

可以看到,我是先创建了一个软链接,在创建了这个软链接的硬链接。它们有着相同的索引节点号。

删除文件

删除文件使用 rm 命令,但是Linux没有回收站这个机制,所以删除文件时需要格外小心,更加稳妥的办法是使用 -i 选项,可以在删除文件之间给出确认提示。此外该命令可以使用通配符一次性删除多个文件。以下是一个实例:

rm -i

删除空目录

仅使用 rm 命令不可以删除目录文件,想删除一个目录得使用 rmdir 命令(仅能删除空的目录),如下:

rmdir

删除文件和非空的目录

如果一个目录非空,则我们不能再使用 rmdir 命令来删除它了,所以我们得强制删除它和它的子目录、子文件。此外, 一定要避免使用 rm -rf .*/* 来删除带点的目录,因为这会匹配..目录,也会把父目录给删了 。一个例子如下:

rm -rf