文件管理命令(增删改查文件)-创新互联
(一)创建目录
石嘴山网站建设公司成都创新互联,石嘴山网站设计制作,有大型网站制作公司丰富经验。已为石嘴山成百上千提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的石嘴山做网站的公司定做!mkdir命令
1.语法格式
mkdir [选项]... 目录...
2.选项
长选项的必选参数对于短选项也是必选的。
-m, --mode=模式 设置文件模式(格式同 chmod),而不是 a=rwx - umask
-p, --parents 需要时创建目标目录的父目录,但即使这些目录已存在也不视为错误,且其文件模式也不受 -m 选项影响。
-v, --verbose 每次创建新目录时,打印一条消息
-Z 将每个创建的目录的 SELinux 安全上下文设置为默认类型
--context[=上下文] 类似 -Z,但如果指定了<上下文>,则将 SELinux或 SMACK 安全上下文设置为<上下文>
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3.参数
目录名
4.示例
(1)不带任何选项
mkdir test
会在当前目录下创建test目录
mkdir /home/user/test
会在/home/user下创建test目录,/home/user必须存在
(2)-p选项
-p选项允许你一次性创建多层次的目录,而不是一次只创建单独的目录。
mkdir -p Project/a/src
在当前目录创建目录Projects/a/src
mkdir -p Project/{a,b,c,d}/src
在当前目录创建目录Project,其中含有4个文件夹a, b, c, d,且这4个文件夹都含有一个src文件
(3)-m选项
-m选项设置目录权限
mkdir -m 766 test2
创建test2文件夹,并设置test2的权限为766
(二)删除目录
rmdir命令
1.语法格式
rmdir [选项]... 目录...
2.选项
--ignore-fail-on-non-empty 忽略仅由目录非空产生的所有错误
-p, --parents 删除<目录>及其父目录,例如,"rmdir -p a/b/c"与 "rmdir a/b/c a/b a" 类似
-v, --verbose 为每个处理的目录输出一条诊断信息
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3.参数
目录名
4.示例
(1)不带任何选项
rmdir test
删除当前目录下的test文件夹,test必须为空
rmdir test/foo
删除test下的foo目录
(2)-p选项
删除上层多级目录,当子目录删除后其父目录为空时,也一同删除
rmdir -p a/b/c
删除c,删除b,删除a与rmdir a/b/c a/b a类似
(三)显示目录
pwd命令显示当前目录
1.语法格式
pwd [选项]...
2.选项
-L, --logical 使用环境变量中的 PWD,即使其中包含符号链接
-P, --physical 避免所有符号链接
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果没有指定任何选项,默认使用 -P
3.示例
(1)不带任何选项,默认使用-P
pwd
显示当前目录
与pwd -P相同
如果当前目录是个链接,那么会显示链接指向的目录
tree命令
以树状图列出目录的内容
1.语法格式
tree [选项] [参数]
2.选项
使用tree --help查看
3.参数
目录名
4.示例
(1)不带任何选项
tree test
列出指定目录test下的所有文件,包括子目录里的文件。
(四)切换目录
cd命令
1.语法格式
cd [选项] [dir]
2.选项
3.参数
目录名
..(两个点)
~(波浪线)
-(减号)
4.示例
(1)基本用法
cd test
切换到test目录下
(2)..参数
cd ..
切换到父目录
(3)~参数
cd ~
进入用户主目录
或者
cd回车,也是进入主目录
(4)-参数
cd -
回到先前的目录
(五)创建文件
touch命令
将每个<文件>的访问时间和修改时间更改为当前时间。
除非提供了 -c 或 -h 选项,否则不存在的<文件>将会被创建,内容为空。
1.语法格式
touch [选项]... 文件...
2.选项
-a 只更改访问时间
-c, --no-create 不创建任何文件
-d, --date=字符串 使用<字符串>表示的时间,而非当前时间
-f (被忽略)
-h, --no-dereference 影响符号链接本身,而非符号链接的目标
(当系统支持更改符号链接的时间戳时,此选项才有用)
-m 只更改修改时间
-r, --reference=文件 使用<文件>的时间戳,而非当前时间
-t 时间戳 使用格式为 [[CC]YY]MMDDhhmm[.ss] 的时间戳,而非当前时间
--time=关键字 修改指定类型的时间:
若<关键字>是 access、atime 或 use:与 -a 等价
若<关键字>是 modify 或 mtime:与 -m 等价
--help 显示此帮助信息并退出
--version 显示版本信息并退出
请注意,-d 和 -t 选项所接受的时间/日期格式是不同的
3.参数
文件名
4.示例
(1)基本用法
touch test.txt
将所指定的文件test.txt的访问时间和修改时间更改为当前时间。如果文件不存在,就创建文件,文件大小为0字节。
mktemp命令
1.语法格式
mktemp [选项]... [模板]
安全地创建一个临时文件或目录,并且输出它的名字。
<模板>的最后一个组成部分必须含有至少 3 个连续的 "X"。
如果没有指定<模板>,将会使用 tmp.XXXXXXXXXX,同时隐含启用 --tmpdir 选项。
创建文件时的权限为 u+rw(对目录则是 u+rwx)减去 umask 施加的限制。
2.选项
-d, --directory 创建一个目录而非文件
-u, --dry-run 不创建任何东西,仅打印出名字(不安全)
-q, --quiet 不显示关于文件或目录创建失败的诊断信息
--suffix=后缀 将<后缀>添加至<模板>字符串之后;<后缀>不能含有斜杠。
若<模板>字符串不以 X 结尾,则隐含启用该选项。
-p 目录, --tmpdir[=目录] 将<模板>视为相对于<目录>的名称;如果未指定
<目录>,当 $TMPDIR 变量已设置时,使用这个变量的值,
否则使用 /tmp。使用该选项时,<模板>不能是绝对路径;
与 -t 不同,<模板>字符串可以包含斜杠,但 mktemp
只会创建该路径的最后一个组成部分
-t 将<模板>视为不含斜杠的单纯的文件名,相对于此目录:
如果设置了 $TMPDIR,则相对于 $TMPDIR;否则如果使用了
-p,则相对于 -p 指定的目录;否则相对于 /tmp [已废弃]
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3.参数
模板
4.示例
使用重定向创建文件
1.使用>file可以创建空文件,如果file存在,则把file截断为0字节
2. cat /dev/null >file,创建文件大小为0字节
3.echo>fileName创建的文件是1个字节的。因为echo默认输出一个换行符。
(六)复制文件
cp命令
1.语法格式
用法:cp [选项]... [-T] 源文件 目标文件
或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件...
将指定<源文件>复制至<目标文件>,或将多个<源文件>复制至<目标目录>。
2.选项
-a, --archive 等于 -dR --preserve=all
--attributes-only 仅复制属性而不复制文件数据
--backup[=控制] 为每个已存在的目标文件创建备份
-b 类似 --backup 但不接受参数
--copy-contents 在递归操作时复制特殊文件的内容
-d 等于 --no-dereference --preserve=links
-f, --force 如果已存在的目标文件无法打开,则将其删除并重试
(该选项在与 -n 选项同时使用时将被忽略)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随命令行里的<源>中的符号链接
-l, --link 硬链接文件以代替复制
-L, --dereference 总是跟随<源>里的符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 从不跟随<源>中的符号链接
-p 等于 --preserve=mode,ownership,timestamps
--preserve[=属性列表] 如果可能的话,保留指定的属性(默认:
mode,ownership,timestamps)
其他属性:context、links、xattr、all
--no-preserve=属性列表 不保留指定的属性
--parents 在<目录>下使用完整的源文件路径
-R, -r, --recursive 递归地复制目录
--reflink[=何时] 控制克隆/CoW 副本。见下文
--remove-destination 尝试打开目标文件前先删除已存在的目标
文件(和 --force 选项有区别)
--sparse=何时 控制创建稀疏文件的方式。见下文
--strip-trailing-slashes 删除参数中所有<源>末尾的斜杠
-s, --symbolic-link 只创建符号链接而不复制文件
-S, --suffix=后缀 自行指定备份文件的后缀
-t, --target-directory=目录 将所有<源>参数复制到<目录>
-T, --no-target-directory 将<目标>视为普通文件
-u, --update 只在<源>比目标文件新,或目标文件
不存在时才进行复制
-v, --verbose 显示详细步骤
-x, --one-file-system 不跨越文件系统进行操作
-Z 设置目标文件的 SELinux 安全上下文为默认类型
--context[=上下文] 类似 -Z,但如果指定了<上下文>,则将 SELinux
或 SMACK 安全上下文设置为<上下文>
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3.参数
4.示例
(1)基本用法
cp test.txt ../test2
将当前目录下的test.txt复制到父目录的子目录test2下
cp test.txt test2.txt
将test.txt复制出一份副本,命名为test2.txt,相当于另存为
(2)-f 如果有已存在的目标文件且无法打开,则将其删除并重试
cp -f test.txt test2.txt
如果test2.txt已经存在,则将其删除,再复制
(3) -n 不要覆盖已存在的文件
cp -n test.txt ../test2
如果test2目录下已经有test.txt了,则不会复制
(4)-R, -r, --recursive 递归复制目录及其子目录内的所有内容
cp -r test test2
将test目录及其子目录复制到test2目录下
(5)-u, --update 只在源文件比目标文件新,或目标文件不存在时才进行复制
cp -u test.txt ../test2
将test.txt复制到父目录的子目录test2下,如果test2下文件更新,则不复制
(七)移动文件
mv命令
1.语法格式
用法:mv [选项]... [-T] 源文件 目标文件
或:mv [选项]... 源文件... 目录
或:mv [选项]... -t 目录 源文件...
将<源文件>重命名为<目标文件>,或将<源文件>移动至指定<目录>。
2.选项
--backup[=控制] 为每个已存在的目标文件创建备份
-b 类似 --backup 但不接受参数
-f, --force 覆盖前不询问
-i, --interactive 覆盖前询问
-n, --no-clobber 不覆盖已存在的文件
如果您指定了 -i、-f、-n 中的多个,仅最后一个生效。
--strip-trailing-slashes 去掉每个<源>尾部的斜杠
-S, --suffix=后缀 用<后缀>替代通常使用的备份文件后缀
-t, --target-directory=目录 将所有<源>移动至<目录>中
-T, --no-target-directory 将<目标>视为普通文件
-u, --update 仅在<源>比目标文件更新,或者目标文件
不存在时,才进行移动操作
-v, --verbose 显示详细步骤
-Z, --context 将目标文件的 SELinux 安全上下文设置为默认类型
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3.参数
4.示例
(1)基本用法
mv test.txt test2.txt
将test.txt重命名为test2.txt
mv test.txt ../test2
将test.txt移动到父目录的子目录test2下
(2)-f, --force 覆盖前不询问
mv test.txt ../test2
将test.txt移动到父目录下子目录test2下,如果有同名文件,直接覆盖
(3)-n, --no-clobber 不覆盖已存在文件
mv test.txt ../test2
将test.txt移动到父目录下子目录test2下,如果有同名文件,则不会移动
(4)-u, --update 仅在<源文件>比目标文件更新,或者目标文件不存在时进行移动操作
mv test.txt ../test2
将test.txt移动到父目录下子目录test2下,如果有同名的更新的文件,则不会移动
(八)删除文件
rm命令
1.语法格式
用法:rm [选项]... [文件]...
删除 (unlink) 一个或多个<文件>。
2.选项
-f, --force 忽略不存在的文件和参数,且从不询问
-i 每次删除前询问
-I 在删除超过三个文件或者递归删除前询问一次;此选项比 -i
提示次数更少,但仍可以避免大多数错误的发生
--interactive[=何时] 根据<何时>的值进行询问:never、once(同 -I)或者
always(同 -i);如果省略<何时>,则默认为 always
--one-file-system 递归删除目录时,跳过所有和该目录所对应的命令行参
数不在同一个文件系统上的目录
--no-preserve-root 不要对 "/" 特殊处理
--preserve-root[=all] 不要删除 "/"(默认行为);
如添加了 "all" 参数,将拒绝处理与其父目录位于
不同设备上的命令行参数
-r, -R, --recursive 递归删除目录及其内容
-d, --dir 删除空目录
-v, --verbose 显示详细步骤
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3.参数
4.示例
(1)基本用法
rm test.txt
删除test.txt
(2)-f, --force 强制删除。忽略不存在的文件,不提示确认
rm -f test.txt
强制删除test.txt
(3)-r, -R, --recursive 递归删除目录及其内容
rm -r test
删除test及其下所有内容
(4)-d, --dir 删除空目录
rm -d test
如果test目录为空,则删除它
(九) 查找文件
find命令
whereis命令
该指令会在特定目录中查找符合条件的文件
该指令只能用于查找二进制文件、源代码文件和man手册页
1.语法格式
用法:
whereis [选项] [-BMS
定位某个命令的二进制文件、源码和帮助页文件。
当不指定目录时,默认目录是$PATH $MANPATH
2.选项
-b 只搜索二进制文件
-B<目录>定义二进制文件查找路径
-m 只搜索手册和信息
-M<目录>定义 man 和 info 查找路径
-s 只搜索源代码
-S<目录>定义源代码查找路径
-f 终止<目录>参数列表
-u 搜索不常见记录
-l 输出有效查找路径
-h, --help 显示此帮助
-V, --version 显示版本
3.参数
文件名
4.示例
(1)基本用法
whereis bash
bash: /usr/bin/bash /usr/share/bash /usr/share/man/man1/bash.1.gz
注意:输出信息中,bash:是查询名,/usr/bin/bash是可执行文件路径,/usr/share/bash是共享文件路径,/usr/share/man/man1/bash.1.gz是手册路径。
(2)-b 只搜索二进制文件
whereis -b bash
bash: /bin/bash /etc/bash.bashrc /usr/share/bash
(3)-B 指定二进制文件查找路径
whereis -B /etc -f bash
(4)只搜索手册
whereis -m bash
bash: /usr/share/man/man1/bash.1.gz
(5)指定手册查找目录
whereis -M /etc -f bash
which命令
which指令会在环境变量$PATH设置的目录里查找shell命令。
1.语法格式
Usage: which [options] [--] COMMAND [...]
Write the full path of COMMAND(s) to standard output.
2.选项
--version, -[vV] Print version and exit successfully.
--help, Print this help and exit successfully.
--skip-dot Skip directories in PATH that start with a dot.
--skip-tilde Skip directories in PATH that start with a tilde.
--show-dot Don't expand a dot to current directory in output.
--show-tilde Output a tilde for HOME directory for non-root.
--tty-only Stop processing options on the right if not on tty.
--all, -a Print all matches in PATH, not just the first
--read-alias, -i Read list of aliases from stdin.
--skip-alias Ignore option --read-alias; don't read stdin.
--read-functions Read shell functions from stdin.
--skip-functions Ignore option --read-functions; don't read stdin.
3.参数
文件名
4.示例
(1)基本用法
which bash
/bin/bash
(2)-a选项
which -a bash
whereis与which的区别:
相同:
1.都可以查找可执行文件
不同:
1.whereis可以指定查找目录,which只能查找$PATH目录
2.whereis还可以查找源码手册,which只能查找可执行文件
3.which能查找别名,whereis不能
(十)显示文件列表
ls命令
1.语法格式
用法:ls [选项]... [文件]...
列出给定文件(默认为当前目录)的信息。
2.选项
选项太多了
使用ls --help查看
3.参数
文件名
4.示例
(1)基本用法
ls
列出当前目录下所有文件
(2)-a, --all 不隐藏任何以 . 开始的项目
ls -a
列出当前目录下所有文件,不隐藏任何以 . 开始的项目
(3)-d, --directory 当遇到目录时列出目录本身而非目录内的文件
ls -dl test
列出test的属性数据,而不是列出test下的文件列表
(4)-l 使用较长格式列出信息
ls -l
列出当前目录下所有文件,显示完整信息
(5)-o 类似 -l,但不列出有关组的信息
ls -o
列出当前目录下所有文件,显示完整信息,但不显示组信息
(6)-r, --reverse 逆序排列
ls -r
列出当前目录下所有文件,但是以逆序排列
(7)-t 按时间排序,最新的最前;参见 --time
ls -t
列出当前目录下所有文件,并以时间排列
(8)-i
ls -i
显示每个文件的索引编号(inode 号)
(十一)查看文件属性信息
stat命令
1.语法格式
用法:stat [选项]... 文件...
显示文件属性数据
2.选项
-L, --dereference 跟随链接
-f, --file-system 显示文件系统状态而非文件状态
--cached=模式 指定如何使用已缓存的属性;
对于远程文件系统很有用。参见下面的<模式>
-c --format=格式 使用指定的<格式>,而非默认格式;
每使用一次<格式>,就输出一个换行符
--printf=格式 类似 --format,但是会解释反斜杠转义序列,并且不会
强制在末尾输出换行符。如果您仍希望进行换行,
可以在<格式>中加入 "\n"
-t, --terse 使用简洁格式输出
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3.参数
4.示例
(1)基本用法
stat test
文件:test
大小:0 块:0 IO 块:4096 目录
Device: 0,44 Inode: 1183248 Links: 1
权限:(0755/drwxr-xr-x) Uid:( 1000/ yintao) Gid:( 1000/ yintao)
最近访问:2022-03-06 02:28:47.915172432 +0800
最近更改:2022-03-06 01:56:21.091175407 +0800
最近改动:2022-03-06 01:56:21.091175407 +0800
创建时间:2022-03-06 01:56:21.091175407 +0800
(十二)改变文件权限
chmod命令
1.语法格式
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
或:chmod [选项]... --reference=参考文件 文件...
将每个文件的权限模式变更至指定模式。
使用 --reference 选项时,把指定文件的模式设置为与参考文件相同。
2.选项
-c, --changes 类似 verbose 选项,但仅在做出修改时进行报告
-f, --silent, --quiet 不显示大多数错误消息
-v, --verbose 为每个处理的文件输出一条诊断信息
--no-preserve-root 不特殊对待 "/"(默认行为)
--preserve-root 不允许在 "/" 上递归操作
--reference=参考文件 使用<参考文件>的模式而非给定<模式>的值
-R, --recursive 递归修改文件和目录
--help 显示此帮助信息并退出
--version 显示版本信息并退出
每个<模式>都应当符合此格式:"[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+"。
3.参数
模式
文件名
4.示例
(1)基本用法
chmod a+x test
(2)-R, --recursive 递归修改文件和目录
chmode -R a+x test
(十三)改变文件所有者
chown命令
chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。
1.语法格式
用法:chown [选项]... [所有者][:[组]] 文件...
或:chown [选项]... --reference=参考文件 文件...
修改每个<文件>的所有者和/或所属组为给定的<所有者>和/或<组>。
如同时使用 --reference,将每个给定<文件>的所有者和属组修改为<参考文件>
所具有的对应值。
<所有者><组>可以是名字或数字id。
2.选项
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
--help : 显示辅助说明
--version : 显示版本
3.参数
所有者
所有组
文件名
4.示例
(1)基本用法
chown root /var/run/httpd.pid
把 /var/run/httpd.pid 的所有者设置 root
chown runoob:runoobgroup file1.txt
将文件 file1.txt 的拥有者设为 runoob,所有组设为 runoobgroup
chown :512 /home/runoob
把 /home/runoob 的所有组设置为 512 (组ID),不改变所有者
(2)-R, --recursive 递归操作文件和目录
chown -R runoob:runoobgroup *
将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,所有组设置为 runoobgroup
chgrp命令
Linux chgrp(英文全拼:change group)命令用于变更文件或目录的所属群组。
1.语法格式
用法:chgrp [选项]... 用户组 文件...
或:chgrp [选项]... --reference=参考文件 文件...
将每个指定<文件>的属组变更至指定<用户组>。
使用 --reference 选项时,把指定<文件>的属组设置为与<参考文件>相同。
2.选项
-c 或 --changes:效果类似"-v"参数,但仅回报更改的部分。
-f 或 --quiet 或 --silent: 不显示错误信息。
-h 或 --no-dereference: 只对符号连接的文件作修改,而不改动其他任何相关文件。
-R 或 --recursive: 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或 --verbose: 显示指令执行过程。
--help: 在线帮助。
--reference=<参考文件或目录>: 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version: 显示版本信息。
3.参数
4.示例
(1)基本用法
chgrp -v bin log2012.log
将 log2012.log 所有组改为 bin
(2)-R 递归操作文件和目录
chgrp -R tom test
(3)--reference
chgrp --reference=log2012.log log2013.log
将文件 log2013.log 的所有组设置为 log2012.log 的所有组
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
名称栏目:文件管理命令(增删改查文件)-创新互联
文章URL:http://cdiso.cn/article/dsideg.html