文件目录管理
- 新建空文件:
touch file
(不会覆盖文件);> file
(会覆盖旧文件内容) - 新建文件夹:
mkdir dir
- 显示当前路径:
pwd
;pwd -P
:显示真实的物理路径(针对于链接的情况 - 提取文件名:
basename path
- 提取路径名:
dirname path
- 目录跳转:
cd [~user]
(转到user的家目录) ;cd -
:回到上一次的目录(记录在环境变量OLDPWD变量) - 文件复制:
cp file0 file1
默认情况会丢失元数据信息,常用-av
选项-
cp -p file0 file1
:保留元数据信息 -
cp -v file0 file1
:显示复制过程的详细信息 -
cp -a file0 file1
:保留全部的信息 -
cp -r file0 file1
:可以用来复制文件夹 -
cp -v file0 file1
:显示复制过程的详细信息
-
- 文件移动:
mv /old/path/file0 /new/path/file1
(包含了改名的功能) - 目录文件查看:
ls [dir]
; dir 不指定时默认是当前目录-
ls -i [dir]
:显示文件的节点号(同一分区的文件节点号不同,分区的节点标号是有限资源) -
ls -ld [dir]
: 显示文件夹本身的信息 -
ll --time=atime file
: 显示文件的详细信息(权限)以及元数据
-
- 硬链接:
ln f1 f11
(硬链接不能跨分区)- 注:两个文件属性完全一致(是同一个文件),不支持文件夹操作,删除f1不影响f11文件的访问
- 软链接:
ln -s f1 f11
(软连接可以跨分区)- 注:不是同一个文件,支持文件夹操作,删除f1影响f11对文件的访问
- 注:f1要写绝对路径 或者相对于f11文件的相对路径
- 查看历史命令记录:
history
存储在~/.bash_history
中(非实时更新 在终端退出时才更新)-
!num
: 执行标号为num的命令 -
!char
: 执行最近的包含char字符的命令 -
!? str
: 执行最近的包含str的历史命令 -
!$
: 前一个命令的最后一个参数
-
- 查看文件类型:
file
(通过文件头信息(魔数)来确定类型)-
file -f
: 将一个文档中列出的所有文档名的文件类型列出 -
file -L
: 显示软链接指向的文件的类型
-
- 标准输出以及标准错误的默认设备是当前终端窗口,标准输入的默认设备是键盘输入
- I/O重定向
-
> file
: 把标准输出重定向到文件,会将文件内容覆盖 -
2> file
:把标准错误重定向到文件 -
&> file
:把标准输出以及标准错误都重定向到文件 -
set -C
:禁止覆盖文件内容,换成追加模式 -
set +C
:允许覆盖文件内容 -
>| file
:强制覆盖文件内容,无视set -C
-
>> file
:在原有内容的基础上追加
-
- 多行重定向:
<<结束词
(在独立一行中出现结束词的情况下才会完成输入) - 管道:
cmd1 | cmd2
将命令1的标准输出发送给命令2的标准输入,要求cmd1有标准输出 - 标准错误洗白:
2>&1
表示将标准错误转成标准输出,一般用法:cmd >/dev/null 2>&1
- 同时重定向:
cmd1 |& cmd2
表示将标准输出以及标准错误都作为cmd2的标准输入 - 重定向到多处:
cmd |tee log
将标准输出重定向到log文件以及终端 - ls /proc/$$/fd 可以显示终端对应的编号信息