新建文件
在GUI的桌面环境中,创建文件是很简单的,例如Windows平台中,大多数情况下只需要点击右键,就可以新建文本文档等各类文件。在终端中创建文件,大体有这么三种方式,使用touch命令进行创建,使用文本编辑器进行创建,使用重定向符号进行创建,接下来就演示如何使用这三种方式进行文件的创建。
使用touch命令进行文件创建
touch命令最初的作用是对文件的“访问时间”或“修改时间”进行修改,当touch命令指定的文件并不存在时,touch命令会新建一个指定名称的文件。命令使用方法如下:
对于不存在的文件,touch命令将创建该文件
#使用touch命令创建文件
os@DESKTOP-2DHQBVS:~$ touch tedu.txt
#可见文件创建成功
os@DESKTOP-2DHQBVS:~$ ls -l
total 0
-rw-rw-rw- 1 os os 0 Sep 26 11:32 tedu.txt
#注意该文件的修改时间为11:32分
对于已经存在的文件,touch命令将修改该文件的访问时间
os@DESKTOP-2DHQBVS:~$ touch tedu.txt
os@DESKTOP-2DHQBVS:~$ ls -l
total 0
#注意,时间已经更改为15:00分
-rw-rw-rw- 1 os os 0 Sep 26 15:00 tedu.txt
使用文本编辑器进行文件创建
Linux发行版中,终端环境下大多带有一个或多个文本编辑器,比如vi、vim、nano等文本编辑器,GUI的桌面环境中也会带有一些文本编辑器,比如Ubuntu的Gedit等编辑器
大多数文件其实都是文本文档,所以使用文本编辑器进行文件创建,是一种比较常用的文件创建方式,需要认真掌握。此处以nano编辑器进行演示如何使用nano进行文件的创建。
#执行nano命令,并在该命令后接想要创建的文件名称
#之后会进入nano编辑器的环境,进行文本编写
os@DESKTOP-2DHQBVS:~$ nano tedu_nano.txt
GNU nano 2.5.3 File: tedu_nano.txt
使用nano文本编辑器创建文件
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify
^X Exit ^R Read File ^\ Replace ^U Uncut Text ^T To Spell
#修改文件内容之后使用快捷键ctrl+x退出编辑器
#此时会提示文件是否保存,输入Y表示保存,输入N表示不保存,此处输入Y后回车
GNU nano 2.5.3 File: tedu_nano.txt Modified
使用nano文本编辑器创建的文件
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
#之后会询问文件名,由于打开nano编辑器时已经指定文件名,所以此处直接回车就完成了文件的船创建
GNU nano 2.5.3 File: tedu_nano.txt Modified
使用nano文本编辑器创建的文件
File Name to Write: tedu_nano.txt
^G Get Help M-D DOS FormatM-A Append M-B Backup File
^C Cancel M-M Mac FormatM-P Prepend ^T To Files
#使用ls命令查看当前文件夹下的内容,可以看到tedu_nano文件已经创建成功
os@DESKTOP-2DHQBVS:~$ ls
tedu_nano.txt tedu.txt
使用重定向的方式进行文件创建
重定向是终端中经常会用到的一种日志保存方法,通常终端中的命令执行时,会即时的将执行结果输出到终端中,实现用户与终端的实时交互。但是许多时候,命令输出的信息很多、很长,终端中并不能完整显示,或者希望在关闭终端后依然能够查看该程序输出的信息,此时就可以使用重定向的方式,将输出的信息重定向到其他文件中进行保存。
#使用>重定向方法创建文件
os@DESKTOP-2DHQBVS:~$ > tedu_1.txt
os@DESKTOP-2DHQBVS:~$ ls
tedu_1.txt tedu_nano.txt tedu.txt
#使用>>重定向方法创建文件
os@DESKTOP-2DHQBVS:~$ ls
tedu_1.txt tedu_2.txt tedu_nano.txt tedu.txt
以上只是单独使用重定向符号进行文件的创建,更多的时候重定向符号是将命令执行的结果进行转储使用。
#使用ls命令输出当前文件夹下的文件及目录名称
#同时将结果重定向到tedu_3.txt文件中
#注意,此时命令执行后并不会在终端中输出任何信息
os@DESKTOP-2DHQBVS:~$ ls > tedu_3.txt
#执行ls命令,可见当前文件夹下已经创建了tedu_3.txt文件
os@DESKTOP-2DHQBVS:~$ ls
tedu_1.txt tedu_2.txt tedu_3.txt tedu_nano.txt tedu.txt
#使用nano编辑器打开tedu_3.txt文件,可以看到,输出内容为本来应该由终端显示的信息
os@DESKTOP-2DHQBVS:~$ nano tedu_3.txt
GNU nano 2.5.3 File: tedu_3.txt
tedu_1.txt
tedu_2.txt
tedu_3.txt
tedu_nano.txt
tedu.txt
[ Read 5 lines ]
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify
^X Exit ^R Read File ^\ Replace ^U Uncut Text ^T To Spell
“>”操作符:当目标文件已存在时,“>”输出的内容将覆盖源文件中已有的内容;
“>>”操作符:当目标文件已存在时,“>>”会将新内容追加到源文件内容的后面。
通常Linux系统中文件名中并没有特殊要求,除NULL(“\0”)和“/”之外,所有字符都可以。但是由于Linux终端中有很多指令操作符,所以在创建新文件时,文件名最好能够避免一些特殊字符,如“. ? > < ; & ! [ ] { } | \ ’ `”等,这些符号在终端中都有着特殊的意义,比如“.”开头文件为隐藏文件,“|”符号为管道符。
链接:https://www.jianshu.com/p/002620cbdf4d