【Linux】文件及目录管理命令(一)
绝对路径必定由 / 开头;绝对路径是为文件的所在位置做指向;在任何时候,都可以用绝对路径来找到想要的文件。
相对路径不由 / 开头;相对路径是相对于现在目前所在的位置,为目的地指向;通常相对路径比绝对路径短一点,可以当成我们迅速找到文件的捷径。
- pwd命令
print working directory,显示当前工作目录的绝对路径。
# pwd
查看默认工作目录的完整路径
# cd /usr/src/
# pwd
查看指定文件夹的路径
- cd命令
change directory,从当前目录切换到指定目录。
# cd .
切换工作目录到当前工作目录
# cd ..
切换到当前目录的上一级目录
# cd ../..
返回上两级目录
# cd !$
把上个命令的参数作为cd参数使用!$表示
- mkdir命令
make directories,若指定目录不存在则创建目录
默认状态下,如果要创建的目录已经存在不会继续创建目录
创建目录时,应保证新建的目录与它所在目录下的文件没有重名
# mkdir www
创建一个空目录
# mkdir -m 755 html
创建权限为755的目录
# mkdir -p a/b/c
递归创建多个目录
# mkdir -v -p a/b/c
创建目录的过程中显示信息
# mkdir html{1..100}
批量创建目录
# mkdir /project
如果没有权限,则不能创建目录
-m 设置权限模式,而不是rwxrwxrwx减umask -p 创建目标目录的上层目录 -v 每次创建新目录都显示信息 -Z 将每个创建的目录的SELinux安全环境设置为CTX --help 显示帮助信息 --version 显示版本信息
- rmdir命令
remove directory,只能删除空目录
当要删除非空目录时,就要使用带有“-R”选项的rm命令
# rmdir www
删除空目录
# rmdir -p a/b/c
删除指定目录及其上级目录
# rmdir a b c d
删除多个空目录
# rmdir -v -p a/b/c
删除过程中显示详细信息
-p 删除指定目录及其上级文件夹 例如rmdir -p a/b/c与rmdir a/b/c a/b a基本相同 -v 输出处理的目录详情 --help 显示帮助信息 --version 显示版本信息
- tree命令
# tree a
以树状图列出目录的内容 a └── b └── c └── d
# tree -L 1 /home
指定只显示一级文件和目录
# tree -L 2 /home
指定最多显示二级文件和目录
# tree -f
在每个文件或目录之前,显示完整的相对路径名称 . └── ./a └── ./a/b └── ./a/b/c └── ./a/b/c/d
# tree -d /etc/systemd/
显示目录名称而非内容
-a 显示所有文件和目录 -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合 -C 在文件和目录清单加上色彩,便于区分各种类型 -D 列出文件或目录的更改时间 -g 列出文件或目录的所属群组名称或群组识别码 -i 不以阶梯状列出文件或目录名称 -I 不显示符合范本样式的文件或目录名称 -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。 -L 层级显示 -n 不在文件和目录清单加上色彩 -N 直接列出文件和目录名称,包括控制字符 -p 列出权限标示 -P 只显示符合范本样式的文件或目录名称 -s 列出文件或目录大小 -t 用文件和目录的更改时间排序。 -u 列出文件或目录的拥有者名称或用户识别码
- ls命令
# ls
查看当前目录下内容
# ls -l
查看当前目录下文件以及其属性信息 使用-l选项可以列出文件类型、大小、修改日期和时间、权限以及硬链接等详细信息
# ls -lh
以易于阅读的格式输出文件大小,将文件大小转变为可阅读的方式。
# ls -a
列出目录下所有文件,包括隐藏文件
-a 列出目录下所有文件,包括以 . 开头的隐藏文件 -b 把文件名中不可输出的字符用反斜杠加字符编号的形式列出 -d 将目录像文件一样显示,而不是显示其下的文件 -e 输出时间的全部信息,而不是输出简略信息 -k 以字节的形式表示文件的大小 -l 列出文件的详细信息 -m 横向输出文件名,并以 , 作为分隔符 -n 用数字 UID、GID 代替名称 -o 显示文件除组信息外的详细信息 -r 对目录反向排序 -s 对每个文件名后输出该文件的大小 -t 以时间排序 -u 以文件上次被访问的时间排序 -v 根据版本进行排序 -x 按列排序,横向排序 -C 按列输出,纵向排序 -G 列出文件的组的信息 -L 列出链接文件名,而不是链接到的文件 -N 不限制文件长度 -R 列出所有子目录下的文件 -S 以文件大小排序 -X 以文件的扩展名(最后一个 . 后的字符)排序 -1 一行只输出一个文件 -color=no 不显示彩色文件名 --help 显示帮助信息 --version 显示版本信息
- mv命令
# mv passwd password
重命名文件
# mv password dir/
移动文件到指定目录中
# mv a b c d dir/
批量移动文件到指定目录中
# mv -t dir a b c d
批量移动文件到指定目录中-t选项
# mv -i passwd a
-i 覆盖前询问
# mv -f passwd a
-f 覆盖前不询问
# mv dir1/ dir
如果目录dir不存在,将目录dir1改名为dir;否则,将dir1移动到dir中
# mv * ../
移动当前文件夹下的所有文件到上一级目录
# mv dir/b ./
将当前dir目录中b文件移动到当前目录中
# mv -bv a dir/
创建备份文件 备份策略:VERSION_CONTROL VERSION_CONTROL=none或off : 不备份 VERSION_CONTROL=numbered或t:数字编号的备份 VERSION_CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1…n: VERSION_CONTROL=simple或never:使用简单备份,在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。
# mv -n a dir/
不覆盖已存在文件
--backup 为每个已存在的目标文件创建备份 -b 类似备份但不接受参数 -f 覆盖前不询问 -i 覆盖前询问 -n 不覆盖已存在文件 如果指定了-i、-f、-n 中的多个,仅最后一个生效 -S 替换常用的备份文件后缀 -t 将所有参数指定的源文件或目录移动至指定目录 -T 将目标文件视作普通文件处理 -u 只在源文件文件比目标文件新,或目标文件不存在时才进行移动 -v 详细显示进行的步骤 --help 显示帮助信息 --version 显示版本信息
- cp命令
# cp /etc/passwd passwd
复制文件
# cp passwd a/
复制一个文件到目录中 和mv命令不同的是:cp 拷贝,而mv相当于剪切
# cp a b c d dir/
拷贝多个文件到指定目录中
-f 如果目标文件无法打开则将其移除并重试 (当 -n 选项存在时则不需再选此项) -i 覆盖前询问(使前面的 -n 选项失效) -H 跟随源文件中的命令行符号链接 -l 链接文件而不复制 -L 总是跟随符号链接 -n 不要覆盖已存在的文件(使前面的-i选项失效) -P 不跟随源文件中的符号链接 --sno-preserve=属性列表 不保留指定的文件属性 --parents 复制前在目标目录创建来源文件路径中的所有目录 --sparse=WHEN 控制创建稀疏文件的方式 --strip-trailing-slashes 删除参数中所有源文件/目录末端的斜杠 -s 只创建符号链接而不复制文件 -S 自行指定备份文件的后缀 -t 将所有参数指定的源文件/目录复制至目标目录 -T 将目标目录视作普通文件 --help 显示帮助信息 --version 显示版本信息
- rm命令
# rm www
删除文件,不加任何选项
# rm www passwd
同时删除多个文件 每个文件以空格分隔
# rm -f www
强制删除。忽略不存在的文件,不提示确认
# rm -v a b c d
详细显示进行的步骤
# rm -i www
在删除前需要确认 如果确认删除,输入y;如果不想删除,输入n
-f 强制删除,忽略不存在的文件,不提示确认 -i 在删除前需要确认 -I 在删除超过三个文件或者递归删除前要求确认 此选项比-i提示内容更少,但同样可以阻止大多数错误发生 --one-file-system 递归删除一个层级时,跳过所有不符合命令行参数的文件系统上的文件 --no-preserve-roo 不特殊对待 / --preserve-root 不允许删除 / (默认) -d 删除空目录 -r 递归删除目录及其内容 -v, --verbose 详细显示进行的步骤 --help 显示帮助信息 --version 显示版本信息
- touch命令
根据当前的系统时间更新指定文件的访问时间和修改时间。如果文件不存在,将会创建新的空文件。
在修改文件的时间属性的时候,用户必须拥有文件的访问权限。
# touch file
创建新文件
# touch you1 you2
创建多个文件,文件之间以空格分隔
# touch file
更改文件的最近访问和最近更改时间
# touch -a file
只更改最近更改时间
# touch -m file
只更改修改时间
# touch -r you1 file
使用指定文件的时间属性替代当前时间
-a 只更改访问时间 -c 不创建任何文件 -d 使用指定字符串表示时间替代当前时间 -m 只更改修改时间 -r 使用指定文件的时间属性替代当前时间 -t 替代当前时间 --time=WORD 使用WORD指定的时间:access、atime、use都等于-a选项的效果 而modify、mtime 等于-m 选项的效果 --help 显示帮助信息 --version 显示版本信息