相对于Windows下的右键新建文件与删除,我更喜爱Linux下的命令式创建与删除,真的方便。不过Windows下也可以借助工具来实现,比如git bash、cmder等等终端工具。
创建文件
新建文件使用touch
命令,后直接跟文件名,比如创建一个名为 demo的 js文件:
touch demo.js
注意,如果当前目录下已经有了一个同名的文件,那么就会修改文件的末次修改日期。
查看文件信息
ls -l
有一个111.txt文件的信息:
-rw-r--r-- 1 root root 0 Apr 19 16:04 111.txt
现在使用touch命令再来创建一次:
touch 111.txt
再看一下信息:
ls -l // -rw-r--r-- 1 root root 0 Apr 22 14:57 111.txt
显然,时间已经变了~
创建目录
创建目录使用mkdir
命令,后直接跟目录名。
结合cd 命令,创建多层级目录
mkdir a cd a mkdir b cd b mkdir c cd c
这个层级很明了,查看当前所在位置:
pwd // /a/b/c
创建命令虽然简单,但是上面这种看起来很繁琐,层级多了还容易写错,所以这里主要介绍一个选项,可以更简便地创建多级目录:
-p : 可以递归创建目录
再来创建上面这样的目录,就可以这样写了:
mkdir -p a1/b1/c1
删除
删除命令是rm,可以删除文件也可以删除目录,需要注意的是:
使用rm删除的文件不可恢复
删除文件
删除一个普通的文件,直接rm+文件名,例如:
//删除test.txt文件 rm test.txt
此时会提示是否删除此文件:
rm: remove regular empty file ‘test.txt’?
在问号后面输入 y 就是确定删除,输入 n 就是取消删除。
删除目录
如果要删除一个目录文件,直接使用rm是不行的,例如:
//删除a目录 rm a
系统会提示:
rm: cannot remove ‘a’: Is a directory
此时,我们需要加一个选项,就是 -r,再来试下:
rm -r a
此时,会提示:
rm: descend into directory ‘a’?
输入 y确定:
rm: descend into directory ‘a/b’?
这是因为a目录下还有b目录,再次确定:
rm: remove directory ‘a/b/c’?
b目录下仍有c目录,之后一直确定:
rm: remove directory ‘a/b’?y rm: remove directory ‘a’?
可以看到删除一个目录的过程比较麻烦,它会一层层进入到最深层的目录里,然后再从里往外一层层删除。不过虽然麻烦,但是却很合理,因为如果你不想删掉整个目录所有文件,这样的询问还是有必要的。现在,你可能会问,我就是想删掉整个目录,不想它一直提示怎么办?为此,Linux提供了另一个选项。
强制删除
使用选项 -f 可以实现强制删除,无需提示,即使文件不存在,也不会提示。
现在删除 a目录,可以:
rm -rf a
此时会一次性删除整个a目录,而不会再提示了。
在这之前,如果我们删除一个不存在的文件,会提示文件不存在:
//删除aaa.txt文件 rm: cannot remove ‘aaa.txt’: No such file or directory
如果加上-f,就不会提示了:
rm -f aaa.txt
最后想说,不管是touch、mkdir还是rm命令,它们都不止有一个选项可用,我只是把我用到的都说了,说多了也没必要,还不如查手册。