创建、命令文件 touch
使用touch
命令可以创建一个文件:
$ touch name.txt
$ ls
name.txt
上面的命令创建了一个名为name.txt
的文件。
在Linux,命名文件通常使用下面的字符:
- 小写字母,比如a, b, c ...
- 大写字母,比如A, B, C ...
- 数字,比如0, 1, 2 ...
- 连字符
-
,不可放在文件名开头。 - 下划线
_
。 - 点
.
。
下面是几条关于文件命名的约定:
- 尽量不使用空格,可以使用下划线或者连字符,比如
foo_bar
。 - 重要目录尽量使用简短的名字,比如
bin
。 - 重要的文件使用大写字母命名,比如
README
。
查看文件类型 file
使用file
命令查看文件类型:
$ file /etc/passwd /bin
/etc/passwd: ASCII text
/bin: directory
上面的例子中,file
告诉我们,/etc/passwd
是一个纯ASCII文本文件,/bin
是一个目录。
复制文件与目录 cp
cp
命令可以复制一个文件,该命令的语法为:
cp -[ip] file1 file2
其中file1
是已有文件的名字,file2
是目标文件的名字。
首先,我们创建一个文件name.txt
,并在里面写一些内容:
$ touch name.txt
$ echo "Hello, World!" > name.txt
$ cat name.txt
Hello, World!
复制一份副本,这份副本的名字叫my_name.txt
,命令如下:
$ cp name.txt my_name.txt
$ cat my_name.txt
Hello, World!
也可以使用目录的方式指定复制文件和目标文件:
$ cp my_name.txt ~/my_name_home.txt
$ cat ~/my_name_home.txt
Hello, World!
可见,cp
将工作目录下的my_name.txt
文件复制到家目录下的my_name_home.txt
文件,如果该文件不存在,那么将创建该文件,如果该文件存在,那么将覆盖该文件。
什么?覆盖文件?!很危险的!
所以可以使用-i
选项来提醒用户,加上该选项时,如果需要覆盖文件,cp
会发出确认信息。
-p
选项可以使目标文件和复制文件具有相同的修改时间、访问时间和权限。
也可以一次复制多个文件:
$ mkdir bk
$ cp name.txt my_name.txt bk/
$ ls bk/
my_name.txt name.txt
上面的命令将两个文件都复制到了bk
目录下。
如果要复制一个目录,那么需要使用-r
选项:
$ cp -r bk/ my_bk/
上面的命令将bk
目录复制了一份副本,这份副本的名字叫my_bk
。
移动文件、重命名文件 mv
与目录操作非常类似,mv
命令可以移动或者重命名文件。
$ mv ~/gamelist.txt ./
$ ls gamelist.txt
gamelist.txt
上面的命令将家目录中的gamelist.txt
文件移动到工作目录中。
如果已有文件和目标文件在同一个目录中,则为重命名操作:
$ mv gamelist.txt my_gamelist.txt
$ ls *gamelist.txt
my_gamelist.txt
删除文件 rm
删除文件使用rm
命令。
$ ls *name.txt
my_name.txt name.txt
$ rm *name.txt
$ ls *name.txt
ls: cannot access '*name.txt': No such file or directory
rm
删除删除了所有以name.txt
结尾的文件。
使用-f
选项将忽略文件权限和-i
提示选项,因此,只有在确认自己在做什么时,才能使用-f
选项。比如下面将快速且安静的删除bk/
目录:
$ ls -d bk
bk
$ rm -rf bk
$ ls -d bk
ls: cannot access 'bk': No such file or directory
注意:Linux没有“回收站”功能,一旦被删除,就无法恢复。
相关:
使用tar
命令可以打包和压缩文件。
使用下面的命令可以将my_bk
目录打包为bk.tar
包:
$ tar -cvf bk.tar my_bk/
my_bk/
my_bk/name.txt
my_bk/my_name.txt
其中:
-
-c
选项:建立一个打包或压缩文件。 -
-v
选项:操作过程中显示文件提示。 -
-f
选项:使用档名,其后不可加其他选项。 -
bk.tar
:目标文件名。 -
my_bk/
:操作文件名。
使用下面的命令即可解开上面所述的包:
$ tar -xvf bk.tar
my_bk/
my_bk/name.txt
my_bk/my_name.txt
其中-x
选项表示解包。
tar
命令使用-z
选项使用gzip压缩包,使用-j
选项使用bzip2压缩包。
比如:
$ tar -zcvf bk.tar.gz my_bk/
表示打包后以gzip格式压缩。
使用
$ tar -zxvf bk.tar.gz
即可解压缩和解包。