1 Linux文件
Linux的核心思想就是“一切皆文件”
Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
——引用自C语言中文网
I/O设备也被模型化为文件,对于输入输出的操作就变成了对于文件的读和写,Linux内核提供接口给用户
2 文件操作命令
2.1 目录管理|ls
「命令描述」
ls命令用于显示指定工作目录下的内容。
「命令格式」
ls [参数] [目录名]。
「参数说明」
参数 |
说明 |
-a |
显示所有文件及目录(包括隐藏文件) |
-l |
将文件的权限、拥有者、文件大小等详细信息列出(ll等同于ls -l) |
-r |
将文件反序列出(默认按英文字母正序) |
-t |
将文件按创建时间正序列出 |
-R |
递归遍历目录下文件 |
命令使用示例:
查看当前目录下的所有文件(包括隐藏文件)。
ll -a
「示例」
2.2 当前所在目录|pwd
「命令描述」
获取当前工作目录的绝对路径。
「示例」
2.3 切换目录|cd
「命令描述」
cd命令用于切换工作目录。同windows一致。
「示例」
在路径表示中:
- 一个半角句号(.)表示当前目录,例如路径./app/log等同于app/log。
- 两个半角句号(..)表示上级目录,例如路径/usr/local/../src等同于/usr/src,其中local和src目录同级。
cd命令的默认参数为~,符号~表示当前用户的家目录,即在root用户登录时,命令cd、cd ~和cd /root执行效果相同。
2.4 修改/创建文件/目录的属性|touch
「命令描述」
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
「命令格式」
touch [参数] [文件]。touch --help可以查看帮助。
[root@iZuf6bldw9r1va5vuegtacZ home]# touch --helpUsage: touch [OPTION]... FILE... Update the access and modification times of each FILE to the current time. A FILE argument that does not exist is created empty, unless -c or -his supplied. A FILE argument string of - is handled specially and causes touch to change the times of the file associated with standard output. Mandatory arguments to long options are mandatory for short options too. -a change only the access time -c, --no-createdo not create any files -d, --date=STRING parse STRING and use it instead of current time -f (ignored) -h, --no-dereference affect each symbolic link instead of any referenced file (useful only on systems that can change the timestamps of a symlink) -m change only the modification time -r, --reference=FILE use this file's times instead of current time -t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time --time=WORD change the specified time: WORD is access, atime, or use: equivalent to -a WORD is modify or mtime: equivalent to -m --help display this help and exit --version output version information and exitNote that the -d and -t options accept different time-date formats.GNU coreutils online help: <http://www.gnu.org/software/coreutils/>For complete documentation, run: info coreutils 'touch invocation'
「参数说明」
参数 |
说明 |
-c |
如果指定文件不存在,不会建立新文件 |
-r |
使用参考文件的时间记录 |
-t |
设置文件的时间记录 |
「示例」
1)创建空文件
2)修改文件的时间属性(最后更改时间)
2.5 创建目录|mkdir
「命令描述」
mkdir命令用于新建子目录。-p参数确保目录名称存在,不存在的就新建一个。
「示例」
mkdir -p a/b/c/d
上述使用了 -r 属性,意思是循环创建目录。我们使用tree命令查看结构。
2.6 树形显示文件/目录结构|tree
上一个步骤我们演示了。下面演示一个只显示2级的目录结构。具体参考tree -help
「示例」
2.7 删除命令|rm
使用时留意,需要仔细,认真。
「命令描述」
rm命令用于删除一个文件或者目录。
「命令格式」
rm [参数] [文件]。
「参数说明」
参数 |
说明 |
-i |
删除前逐一询问确认 |
-f |
无需确认,直接删除 |
-r |
删除目录下所有文件 |
「示例」
1)查看当前目录 2)执行删除test.log文件 3)再次查看确认
当然我们也可以删除一个目录。例如我们删除a目录
2.8 复制文件/目录|cp
「命令描述」
cp命令主要用于复制文件或目录。
「命令格式」
cp [参数] [源文件] [目标文件]。
「参数说明」
参数 |
说明 |
-d |
复制时保留链接 |
-f |
覆盖已经存在的目标文件而不给出提示 |
-i |
覆盖前询问 |
-p |
除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
-r |
复制目录及目录内的所有项目 |
「示例」
当前目录下test文件夹下面有个文件test1.txt,复制到test2文件夹下面去。
2.9 移动命令|mv
「命令描述」
mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
「命令格式」
mv [参数] [源文件] [目标文件]
「参数说明」
参数 |
说明 |
-i |
若指定目录已有同名文件,则先询问是否覆盖旧文件 |
-f |
如果目标文件已经存在,不会询问而直接覆盖 |
「示例」
1)改名称
将test2目录下的test1.txt改为test1-1.txt
2)移动文件
将文件test1.log移动到test目录下
3)移动目录
这里要留意下,执行命令后,自己不能移动,不然就是在这里死循环了,但是其他文件还是可以被移动到目录下。
2.10 按照格式修改命令|rename
「命令描述」
rename命令用字符串替换的方式批量改变文件名。rename命令有C语言和Perl语言两个版本,这里介绍C语言版本的rename命令,不支持正则表达式。
「示例」