Linux创建文件和目录的一些方法
Linux系统的设计哲学是"一切皆文件",所以文件在linux中至关重要,而linux文件又分为:设备文件和虚拟文件系统(VFS)
1.设备文件:
Linux硬件设备被表示为设备文件,通过在文件系统中创建设备节点,使得用户和应用程序可以通过标准的文件I/O接口来访问这些设备。如:硬盘驱动器可以表示为/dev/sda,串口可以表示为/dev/ttyS0
2.虚拟文件系统(VFS):
Linux内核实现了虚拟文件系统层,它是Linux系统实现"一切皆文件"思想的重要组成部分。虚拟文件系统将不同的文件系统(如ext4、NTFS、procfs等)抽象为统一的接口,使得用户和应用程序可以使用相同的文件I/O系统调用来访问不同的文件系统。
一、创建文件方法(以testfile.txt为例, 不限于txt文件)
1. 使用touch命令创建空文件
touch testfile.txt
2.使用重定向符号(>)
2.1. 使用echo命令重定向输出到文件:
echo "hello" > testfile.txt
2.2 printf命令与echo工作方式类似:
printf "hello" > testfile.txt
2.3. 使用cat命令创建文件并输入内容:
cat > testfile.txt
# 输入内容后,按Ctrl + D退出
要在末尾添加内容可使用 >> 代替 >
3. 使用vi或vim编辑器创建和编辑文件
vi testfile.txt
# 按i进入编辑模式,输入内容,按Esc退出编辑模式,然后输入:wq保存并退出
4. 使用gedit或其他文本编辑器创建和编辑文件
gedit testfile.txt
5. 使用nano编辑器创建和编辑文件
nano testfile.txt
6.使用一些图形化IDE编辑器(需要额外安装)
例如使用vs code、qtcreator、clion、pycharm等等,提供了文件菜单进行文件创建。
7.一些更为特殊创建方法(类似从已有文件拷贝或填充到新文件):
7.1:cp命令: 复制一个已有文件到新文件
cp sourcefile.txt testfile.txt
7.2:mv 命令:重命名文件(严格来说并不是新建文件)
mv sourcefile.txt testfile.txt
7.3:rsync和scp命令:一般用来网络间文件拷贝
scp /home/test/testfile.txt root@ip:/home/test/testfile.txt
# 拷贝本地/home/test/testfile.txt到远程ip下/home/test/testfile.txt
7.4:head命令:默认是显示存在文件前10行内容,这里是新建空文件
head -c 0k /dev/zero > testfile.txt
7.5:tail 命令:默认是输出文件末尾部分,这里将末尾2行写入到新建的文件
tail -n 2 testfile.txt > testfile1.txt
7.6:truncate命令:将文件大小缩小或扩展到指定大小,这里创建空文件
truncate -s 0k testfile.txt
7.7: dd 命令:从设备/dev/zero中拷贝1k内容到输出文件
dd if=/dev/zero of=testfile.txt bs=1k count=1
8.使用代码实现(各种编程语言)
基本上每种编程语言都提供了文件io的功能, 可以通过语言提供的接口或者系统的open来创建新文件。
例如c语言:
int main()
{
FILE *fp;
if((fp = fopen("./testfile.txt", "wb")) == nullptr)
{
printf("open file error\n");
return -1;
}
fclose(fp);
return 0;
}
二、文件目录创建方法
1.mkdir: 新建单层目录
mkdir testdir
2.mkdir:新建多层目录
加入-p参数,新建目标可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
mkdir -p testdir/test2/test3
当然了,新建目录也可用各种编程语言使用代码实现
作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处,如有不当欢迎指正