(四)目录文件操作相关
创建目录
mkdir
[语法]: mkdir [-m 模式] [-p] 目录名
[说明]: 本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID
-p,--parents: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
-v, --verbose: 每次创建新目录都显示信息
-m, --mode: 设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
创建目录或文件
touch
[语法]: touch [-amc] [mmddhhmm[yy]] 文件...
[说明]: 将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建 的文件。
-a 或--time=atime或--time=access或--time=use 只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
[[CC]YY]MMDDhhmm[.SS]
这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内.MM为月数, DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒. 这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的。
删除目录
rmdir
[语法]: rmdir [-p] [-s] 目录名
[说明]: 本命令用于删除目录
-p: 删除所有已经为空的父目录
-s: 当使用-p 选项时,出现错误不提示
-v, --verbose: 显示指令执行过程
[例子]:
rmdir /tmp/abc 删除目录 /tmp/abc
rmdir -p /tmp/a/b/c 删除目录 /tmp/a/b/c ,若目录 /tmp/a /b
及/tmp/a 空,则删除
[注意]:
rmdir 目录名 命令不能直接删除非空目录.
也就是说不能删除有文件的目录
删除目录或文件
rm(remove)
[语法]: rm [-f] [-i] 文件...
或 rm -r [-f] [-i] 目录名... [文件]
[说明]rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接, 原有文件均保持不变。
-f, --force: 忽略不存在的文件,强制,从不给出提示。
-i, --interactive: 进行交互式删除,删除前逐一询问确认。
-r, -R, --recursive: 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose: 详细显示进行的步骤
--help: 显示此帮助信息并退出
--version : 输出版本信息并退出
[例子]:
rm file1 删除文件 file1
rm -i /tmp/* 删除目录 /tmp 下的所有文件
rm -r /mytmp 递归地删除目录 /mytmp
移动目录或文件
mv(move)
[语法]: mv [-f] [-i] 文件1 [文件2...] 目标
[说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名
- i, --interactive: 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
- f , --force: 强制,如果目标文件已经存在,不会询问而直接覆盖
-b : 若需覆盖文件,则覆盖前先行备份
-u : 若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
[例子]:
mv file1 file2 将文件 file1 改名为 file2
mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下
mv log1.txt log2.txt log3.txt test3
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
mv log1.txt -b log2.txt 文件被覆盖前做简单备份,前面加参数-b
说明:
-b 不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。
--backup该选项指定如果目标文件存在时的动作,共有四种备份策略:
1.CONTROL=none或off : 不备份。
2.CONTROL=numbered或t:数字编号的备份
3.CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:
执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。
4.CONTROL=simple或never:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。
复制目录或文件
cp(copy)
[语法]: cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标
[说明]: 将文件1(文件2 ...)拷贝到目标上,目标不能与文件同名, 若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存 在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。
- i , --interactive : 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
-p(小写), --no-dereference : 不跟随源文件中的符号链接
- p(大写) , --preserve : 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表, 但不拷贝UID 及 GID
-R, -r, --recursive : 复制目录及目录内的所有项目。 若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时目标必须为目录
-a, --archive : 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b: 类似--backup 但不接受参数
--copy-contents 在递归处理是复制特殊文件内容
-d : 等于--no-dereference --preserve=links
-f, --force : 如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)
-n, --no-clobber: 不要覆盖已存在的文件(使前面的 -i 选项失效)
-H : 跟随源文件中的命令行符号链接
-l, --link : 链接文件而不复制
-L, --dereference : 总是跟随符号链接
[例子]:
cp file1 file2 将文件 file1 拷贝到文件 file2
cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下
cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp
改变当前目录
cd(change directory)
[语法]: cd [目录]
[说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME 作为其参数,$HOME 一般为注册时进入的路径。
cd ~USERNAME: 进入指定用户的家目录
cd -:在当前目录和前一次所在的目录之间来回切换
cd : 回到注册进入时的目录
cd /tmp : 进入 /tmp 目录
cd ../ : 进入上级目录
显示当前目录内容
ls (list)
[语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]
[说明]: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列。
-a,--a: 列出目录下的一切文件,包含以 . 开头的隐含文件
. 表示当前目录
.. 表示父目录
-A,--almost-all: 显现除 “.”和“..”外的一切文件
-d: 显示目录自身属性
-l : 列出文件的具体信息(简写命令:ll)
文件类型:
-:普通文件 (f)
d: 目录文件
b: 块设备文件 (block)
c: 字符设备文件 (character)
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--
文件硬链接的次数
文件的属主(owner)
文件的属组(group)
文件大小(size),单位是字节
时间戳(timestamp):最近一次被修改的时间
访问:access
修改:modify,文件内容发生了改变
改变:change,metadata,元数据
-F :对可执行文件添加一个*号,为目录添加一个/号,为符号链接添加一个@号
-r : 逆序显示
-t : 根据修改时间排序
-R: 递归列出一切子目录下的文件
-m: 横向输出文件名,并以“,”作分格符。
-i : 输出文件的 i 节点的索引信息。
显示当前工作目录
pwd(Printing Working directory)

浙公网安备 33010602011771号