1.目录Linux和Unix文件系统被组织成层次化的树形结构。文件系统的顶层是/,即根目录。在Unix和Linux的设计理念中,一切都是文件,包括硬盘、分区和可移动介质。这意味着所有其他文件和目录(包括其他硬盘驱动器和分区)都位于根目录中。
例如:/home/jebediah/cheeses.odt给出了正确的完整路径,它指向cheeses.odt文件,该文件位于jebediah目录中,该目录位于home目录中,最后,home目录位于在根(/) 目录中。在根(/) 目录下,有一组大多数Linux 发行版所共有的重要系统目录。
直接位于根(/) 目录下的常用目录列表如下:
2、相对路径和绝对路径绝对路径:路径必须从根目录/开始书写,例如目录/usr/share/doc。
相对路径:路径写为“不是从根目录/开始”。例如从/usr/share/doc目录到/usr/share/man目录,可以写为:cd ./man。这是相对路径。
更多特殊目录:
注意!将有两个目录“.”和任何目录中的“.”,包括根目录。可以使用ls -al /命令查看。
3、目录相关操作:cd、pwd、mkdir、rmdir。处理目录的常用指令有:
cd: 更改目录
pwd: 显示当前目录
mkdir: 创建一个新目录
rmdir: 删除空目录
3.1 pwd(PrintWorkingDirectory的缩写)显示当前目录
1命令格式:
密码[选项]
2、命令功能:
查看“当前工作目录”的完整路径。当当前位置不确定时,将使用pwd来确定当前目录在文件系统中的确切位置。
3、常用参数:
一般情况下不带任何参数
如果目录是链接:
格式:pwd -P 显示实际路径而不是使用链接路径。
4、常见例子:
使用pwd命令查看默认工作目录的完整路径
连接目录时,pwd -P 显示实际路径,而不是使用链接路径; pwd 显示链接路径。
3.2 cd(Change Directory的缩写)改变目录
1命令格式:
cd [目录名]
2、命令功能:
将当前目录更改为dirName
3、常见例子:
cd ~ 表示返回主目录
cd 不添加任何路径也意味着返回到您的主目录
cd . 表示进入当前目录的上层目录
cd – 表示返回到之前工作的目录
cd !$ 使用上一个命令的参数作为cd 参数
cd /home/ppnie/study/logs 绝对路径写法,直接进入指定目录
cd ./././相对路径写法,可以这样写,从/home/ppnie/study/logs 到/home
3.3 mkdir(make directory的缩写)创建新目录
1命令格式:
mkdir [选项] 目录.
2、命令功能:
mkdir 命令可用于在指定位置创建名为DirName(指定文件名)的文件夹或目录。创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写入权限。而且,创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名同名,即同一目录下不能存在同名文件(区分大小写) )。
3、命令参数:
-m, –mode=mode,设置权限模式(类似chmod)而不是rwxrwxrwx减去umask
-p, –parents 可以是路径名。此时,如果路径中的某些目录尚不存在,则添加该选项后,系统会自动创建那些尚不存在的目录,即可以一次创建多个目录;
-v, –verbose 每次创建新目录时显示信息
–help 显示此帮助消息并退出
–version 输出版本信息并退出
4.命令示例:
创建空目录mkdir 研究
创建多级目录a/aa/aaa,打印创建信息,并分配权限为777
命令:mkdir -vp -m 777 a/aa/aaa
一条命令创建项目的目录结构
命令: mkdir -vp project/{src/,lib/,WebRoot/{css/,js/,WEB-INF/,logs/}}
3.4 rmdir(remove Directory的缩写)删除空目录
1命令格式:
rmdir [选项] 目录.
2、命令功能:
删除空目录。删除的目录中不能存在其他目录或文件。如果目录不为空且必须删除,可以使用\’rm -r 目录名\’
3、命令参数:
-p : 也删除上面的“空”目录
4、文件和目录管理4.1 查看文件和目录:ls
1命令格式:
ls [-aAdfFhilnrRSt] 目录名称.
ls [–color={never,auto,always}] 目录名称.
ls [–full-time] 目录名称.
2、命令功能:
查看档案和目录
3、命令参数:
-a:所有文件与隐藏文件一起列出(以.开头的文件)~
-A:所有文件,包括隐藏文件,但不包括.和.目录,列在一起~
-d:只列出目录本身,不列出目录中的文件数据
-f:直接列出结果,不排序(ls默认按照文件名排序!)
-F:根据文件、目录等信息给出附加的数据结构,例如:
*:代表可执行文件; /:代表目录;=:代表socket文件;代表FIFO文件;
-h:以更人类可读的格式列出文件容量(如GB、KB等);
-i:列出inode位置而不是文件属性;
-l:序列化长数据,包括文件属性和其他数据;
-n:列出UID和GID而不是用户和组名(UID和GID会在账户管理中提到!)
-r:反向输出排序结果,例如:原文件名从小到大,反向为从大到小;
-R:连同子目录内容一起列出;
-S:按文件大小排序!
-t:按时间排序
–color=never:不根据文件特性给予颜色显示;
–color=always:显示颜色
–color=auto:让系统根据设置决定是否给出颜色
–full-time:以全时间模式输出(包括年、月、日、时、分)
–time={atime,ctime}:输出访问时间或更改权限属性时间(ctime)
而不是内容修改时间(修改时间)
4.命令示例:
查询study/和test/目录下的所有文档并显示详细信息
命令:ls -AFl 研究/测试/
4.2 复制:cp
1命令格式:
cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [选项] source1 source2 source3. 目录
注意!如果有两个以上的源文件,则最后一个目标文件必须是“目录”。
2、命令功能:
复制文件或目录
3. 一些命令参数:
-a : 相当于-pdr; (常用)
-b : 删除或覆盖目标文件并先备份。备份的文件或目录也创建为符号链接,并指向源文件或源文件目录或目录链接。如果不加该参数,在复制过程中如果遇到符号链接,则直接复制源文件或目录。
-d : 如果源文件是链接文件,则复制其属性而不是文件本身;
-f : 强制复制文件或目录,无论目标文件或目录是否已存在
-i : 如果目标文件已经存在,覆盖时会先询问; (常用)
-l : 创建硬链接链接文件而不是复制文件本身;
-P: 保留源文件或目录的路径。该路径可以是绝对路径或相对路径,并且目标目录必须已存在。
-p : 还复制文件的属性而不是默认属性; (常用于备份)
-r : 递归连续复制,用于目录复制; (常用)
-s : 复制到符号链接文件,即“快捷方式”文件;
-u : 仅当目标比源旧时才更新目标!
-v : 显示执行过程
4. 命令示例
复制study和test目录下的所有文件。如果文件已经存在,则直接覆盖并显示执行过程。
4.3 删除:rm
1、命令格式:
rm [选项] 文件.
2、命令功能:
删除目录中的一个或多个文件或目录。如果不使用-r选项,rm将不会删除该目录。如果使用rm 删除文件,通常仍然可以使文件恢复到原始状态。
3. 一些命令参数:
-f, –force 忽略不存在的文件并且从不提示。
-i, –interactive 执行交互式删除
-r, -R, –recursive 指示rm 递归删除参数中列出的所有目录和子目录。
-v, –verbose 显示详细步骤
–help 显示此帮助消息并退出
–version 输出版本信息并退出
4.命令示例:
强行删除当前目录下的所有文件和目录
命令:rm -rf *
4.4 手机:mv
1、命令格式:
mv [选项] 源文件或目录目标文件或目录
2、命令功能:
mv 命令重命名文件或将文件移动到新目录
3. 一些命令参数:
-b:如果需要覆盖文件,覆盖前请先备份。
-f:force的意思。如果目标文件已经存在,则不询问直接覆盖;
-i:如果目标文件(destination)已经存在,会询问是否覆盖它!
-u:如果目标文件已经存在并且源文件比较新,则会更新(update)
-t: –target-directory=DIRECTORY 将所有SOURCE 参数移动到DIRECTORY 中,即指定mv 的目标目录。此选项适合将多个源文件移动到一个目录。在这种情况下,目标目录在前,源文件在最后。
4.命令示例:
将当前目录的子目录中的文件移动到另一个子目录
命令:mv test/*.txt 研究/
4.5 获取某个路径的文件名basename和目录名dirname