Linux常用文件管理命令
##. 通用基础知识
查询指令命令
help
,通过指令名 --help
或者man 指令名
。例如,我们需要查询
ls
这个指令的参数用法以及作用,即通过ls --help
即可得到如下:ctrl c
:取消命令,并且换行。ctrl u
:清空本行命令tab
:补全命令和文件名,如果补全不了就快速按两下tab
键,可以显示备选项。
##. 文件基础操作
注意事项
- 如果文件名或者文件夹名存在空格或者一些特殊字符,我们要进行转移表示,即通过转移字符
\
来实现。
- 如果文件名或者文件夹名存在空格或者一些特殊字符,我们要进行转移表示,即通过转移字符
创建文件夹:
mkdir [-p][dirNmae]
其中
-p
确保目录名称一定存在,如果不存在就会创建一个。创建文件:
touch [dirName + fileName]
显示当前目录下或者指定目录下的所有文件:
ls [参数][dirName]
其中显示的蓝色是文件夹,白色是普通文件,绿色是可执行文件,如图:
参数有:
-a
显示所有文件及目录 (. 开头的隐藏文件也会列出)-l
除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出-r
将文件以相反次序显示(原定依英文字母次序)-t
将文件依建立时间之先后次序列出-
A 同-a
,但不列出 “.” (目前目录) 及 “..” (父目录)-F
在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”-R
若目录下有文件,则以下之文件亦皆依序列出
显示目前所在的工作目录的绝对路径名称:
pwd
切换当前工作目录:
cd [dirName]
其中
dirName
可为绝对路径或相对路径,如果没有给出,默认返回家目录。cd -
会返回之前的工作目录删除文件或文件夹:
rm [dirName] [options]
,其中选项包括:
` -i` 删除前逐一询问确认。
-f
即使原档案属性设为唯读,亦直接删除,无需逐一确认。-r
将目录及以下之档案亦逐一删除,递归所有的子目录,逐一询问。一般删除普通文件直接使用
rm [dirName]
创建编写文件:
vim [dirName]
创建好之后会自动进入文件,这个时候我们事写不动东西的,所以我们需要输入小写字母
i
(为insert的缩写)即可写入,写完之后如何保存?我们先需要按ESC
键锁住文件,再输入:wq
即可,这个命令就是保存并退出的意思。查看文件:
cat [dirName]
复制文件:
cp [options] source dest
其中参数说明:
-a
:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。-d
:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。-f
:覆盖已经存在的目标文件而不给出提示。-i
:与-f
选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。-p
:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。-r
:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。复制目录的时候一定要添加的参数-l
:不复制文件,只是生成链接文件。
即
cp
= 复制+粘贴+重命名,我们可以看一个例子cp a/tmp.txt b/tmp2.txt
,那么会从a
中的tmp.txt
复制到b
中并重命名为tmp2.txt
。为文件或目录改名、或将文件或目录移入其它位置:
mv [options] source dest
。如果需要重命名,就在后面加上新的文件名。
其中参数说明
- -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
- -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
- -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
- -n: 不要覆盖任何已存在的文件或目录。
- -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
1 编译运行C/C++文件
编译
g++ 文件名.cpp -o 文件名 -std=版本
例如:
g++ main.cpp -o main -std=c++11
值得注意的一点就是在
AC Terminal
里面是用不了万能头文件的。运行
./文件名
,即可运行。