文章目录
帮助
命令分为两类,一类集成在shall中,被称为内置命令;一部分是shall调用的命令,被称为外部命令。
type
用于区分命令是内置命令还是外部命令。
示例
type cd
help
查询内置命令的使用说明。
示例
help cd
man
man:manual,查询外部命令的帮助手册。
示例
man ls
帮助手册的翻页等查看操作与Vim的操作方法相同。
文件系统
符号 | 含义 |
---|---|
. | 当前工作目录 |
.. | 当前工作目录的上一级目录 |
~ | 当前用户的主目录 |
pwd
pwd:print working directory,显示当前工作目录的绝对路径。
选项
简写 | 含义 |
---|---|
-P | 若当前工作目录是符号链接路径,则显示其真实的物理(physical)链接路径 |
示例
pwd
cd
cd:change directory,切换当前工作目录。
选项
简写 | 含义 |
---|---|
-P | 若给出一个符号链接路径,则会被转换成真实的物理(physical)路径 |
示例:
cd /root/Desktop # 切换到/root/Desktop
cd ./Desktop # 切换到当前工作目录下的Desktop目录
cd Desktop # 与上句等价
cd .. # 切换到当前工作目录的上级目录
cd ~ # 切换到当前用户的主目录
cd # 与上句等价
cd - # 切换到上次工作的目录
ls
ls:list,列出目录内容。
选项
选项
简写 | 全写 | 含义 |
---|---|---|
-a | --all | 连同隐藏文件一并列出 |
-l | 列出详细数据(ll 为ls -l 的别名) | |
-h | --human-readable | 与-l 一起使用,打印文件大小时,使用k,M,G等单位 |
示例
ls -a
ls -al /usr
对ls -l
所列出的内容解释如下:
|----1----|-2-|-3-|-4-|--5--|-----6-----|----------7----------|
drwxr-xr-x. 2 root root 42 Jul 20 18:01 Desktop
drwxr-xr-x. 2 root root 6 Jul 16 21:30 Documents
drwxr-xr-x. 2 root root 6 Jul 16 21:30 Downloads
-rw-r--r--. 1 root root 1892 Jul 14 23:09 initial-setup-ks.cfg
- 第一部分:总共有 10 个字符,第 1 个字符表示文件类型,符号含义参看图表。第 2-4 表示文件所有者拥有的权限,‘r’ 表示读权限,‘w’ 表示写权限,‘x’ 表示执行权限,需注意三者之间的顺序(读、写、执行);第 5-7 表示文件所属组的成员拥有的权限;第 8-10 表示其它用户拥有的权限。第 2-10 对于文件权限的描述称为文件模式(file mode)。此外,目录的读权限意思是可以读取目录下有哪些文件;写权限的意思是可以在目录下添加或删除文件;执行权限的意思是可以对目录下文件的内容进行操作,也可将该目录设为当前工作目录。
- 第二部分:链接数,对于普通文件,该数值表示硬链接的数量;对于目录,该数值表示目录下文件的数量。
- 第三部分:文件所有者。
- 第四部分:文件所属组。
- 第五部分:文件大小,单位是字节。
- 第六部分:创建时间。
- 第七部分:文件名称。
符号 | 文件类型 |
---|---|
- 或f | 常规文件(regular file) |
d | 目录(directory) |
l | 符号链接(symbolic link) |
c | 字符设备(charactoer special) |
b | 块设备(block special) |
p | 命名管道(named pipe) |
s | 套接字(socket) |
stat
stat:status,打印文件的详细信息。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-f | --file-system | 打印文件在文件系统中的详细信息 | |
--printf | string | 格式化打印(格式串中转义字符的含义,使用man stat 查看,这里不再赘述) |
示例
stat hello
stat -f hello
时间戳 | 解释 |
---|---|
访问时间(Access,atime) | 上次查看文件内容的时间 |
修改时间(Modify,mtime) | 上次修改文件内容的时间,不包含修改文件的属性 |
改变时间(Change,ctime) | 上次修改文件内容或修改文件属性的时间 |
创建时间(Birth) | 创建文件的时间 |
mkdir
mkdir:make directory,创建目录。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-p | --parents | 创建多级目录(若路径中某些目录尚不存在,则创建这些目录) | |
-m | --mode | MODE | 设置文件权限(MODE的写法参照 chmod) |
示例
// 设./a/b/c不存在
mkdir a a/b a/b/c # 创建./a/b/c
mkdir -p a/b/c # 等价于上句
rmdir
rmdir:remove directory,删除目录。
选项
简写 | 全写 | 含义 |
---|---|---|
-p | --parents | 删除多级目录(若路径中子目录删除后父目录为空,则删除父目录) |
示例
# 设./a/b/c存在
rmdir a/b/c a/b a # 删除./a/b/c ./a/b ./a
rmdir -p a/b/c # 等价于上句
cp
cp:copy,拷贝。
选项
简写 | 全写 | 含义 |
---|---|---|
-f | --force | 强制拷贝(目的文件或目录若存在,则将被覆盖) |
-r | --recursive | 递归拷贝(源文件若为目录,则其下级所有目录和文件都将被复制) |
示例
# 设目录./tmp和文件./tmp/hello.txt
cp test.txt tmp # 会有tmp/test.txt生成
cp test.txt tmp/hello.txt # 会询问是否将tmp/hello.txt覆盖
cp -f test.txt tmp/hello.txt # 不再询问,tmp/hello.txt被强制覆盖
cp -r tmp good # tmp及其下所有文件被复制
mv
mv:move,移动。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-f | --force | 若存在与目标文件同名的文件,不询问,直接覆盖 | |
-b | 若存在与目标文件同名的文件,在覆盖前先创建其备份文件 | ||
-u | --update | 若存在与目标文件同名的文件,当源文件比该文件更新时,覆盖该文件 | |
-t | --target-directory | directory | 当将多个文件移动到同一目录下时,需使用此选项指定目标目录 |
-v | --verbose | 打印处理过程 |
示例
#设常规文件 1、2、3,设目录 Desktop
mv 1 11 # 将文件 1 的名称改为 11
mv -u 2 Desktop # 将文件 2 移动到 Desktop 目录下
mv -t Desktop 1 2 3 # 将文件 1、2、3 都移动到 Desktop 目录下
rm
rm:remove,删除。
选项
简写 | 全写 | 含义 |
---|---|---|
-f | --force | 强制删除(忽略不存在的文件,不提示确认) |
-r | --recursive | 递归删除(若为目录,则其下级所有目录和文件都将被删除) |
-v | --verbose | 打印处理过程 |
示例
rm -rf /* # 删库跑路
touch
更新目录或文件的访问和修改时间。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-c | --no-create | 当文件不存在时不要创建新的 | |
-a | 只更新访问时间(change only the access time) | ||
-m | 只更新修改时间(change only the modification time) | ||
-t | [[CC]YY]MMDDhhmm[.ss] | 使用指定的时间 |
示例
touch hello # 更新hello的访问和修改时间为当前系统时间,若hello不存在则创建
touch -ac hello # 仅更新hello的访问时间为当前系统时间,若hello不存在则命令作废
touch -mc hello # 仅更新hello的修改时间为当前系统时间,若hello不存在则命令作废
touch -act 202207201314.52 hello # 仅更新hello的访问时间为2022年7月20日13时14分52秒,若hello不存在则命令作废
ln
ln:link,建立链接。
选项
简写 | 全写 | 含义 |
---|---|---|
-s | --symbolic | 建立符号链接而非硬链接 |
示例
ln Desktop/hi hello # 建立硬链接hello,使hello与hi指向同一文件实体
ln -s Desktop/hi hello # 建立软连接hello->hi
chmod
chmod: change file mode,更改文件的权限设置(文件模式)。只有文件的所有者和超级用户才能使用此命令。设置方式有以下两种:
使用符号描述:用 u、g、o 、a分别代指文件所有者、文件所属组的成员、其它用户、所有用户;用 +、-、= 分别表示增加权限、去除权限、赋予权限;用 r、w、x 分别表示读权限、写权限、执行权。
chmod u+x hello # 给文件所有者增加执行权
chmod g-w hello # 给文件所属组的成员去除写权限
chmod o=rwx hello # 给其它用户赋予全部权限
chmod u+x,g-w,o=rwx hello # 同时输入以上三条设置
使用二进制码描述:每种权限使用一个二进制位,按照读、写、执行的顺序,编制成一个三位的二进制码。例如:dex(6)=bin(110)=rw-
。再按照文件所有者、文件所属组的成员、其它用户的顺序组成一个序列。例如:u=rw,g=r,o=r
就是644
。
chmod 644 hello # chmod u=rw,g=r,o=r hello
chmod 777 hello # chmod a=rwx hello
chown
chown:change file owner,更改文件所有者。只有文件的所有者和超级用户才能使用此命令。
选项
简写 | 全写 | 含义 |
---|---|---|
-r | --recursive | 递归地更改(当操作对象为目录时,则目录下所有文件都将进行相同的操作) |
示例
chown root hello # 将 hello 的所有者改为root
chown root:happy hello # 将 hello 的所有者改为root,所属组改为happy
chown -r root Desktop # 递归地更改
chgrp
chgrp:change file group,更改文件所属组。只有文件的所有者和超级用户才能使用此命令。
选项
简写 | 全写 | 含义 |
---|---|---|
-r | --recursive | 递归地更改(当操作对象为目录时,则目录下所有文件都将进行相同的操作) |
示例
chgrp root hello # 将 hello 的所属组改为root
chgrp -r root Desktop # 递归地更改
辅助工具
重定向
Linux 中部分文件(一切皆文件)的文件描述符(file descriptor,fp)的取值是固定的。
fp | 文件 |
---|---|
0 | stdin(标准输入) |
1 | stdout(标准输出) |
2 | stderr(标准错误输出) |
标准输入重定向
符号 | 含义 |
---|---|
< 或0< | 重定向 stdin 的输入源 |
<< 或0<< | 重新定义 stdin 的读取分隔符 |
以上符号默认 fp 为 stdin,故可省去 0。
标准输出重定向
符号 | 含义 |
---|---|
> 或1> | 重定向 stdin 的输出端,对于输出端的文件,其原有内容将被覆盖 |
>> 或1>> | 重定向 stdin 的输出端,输出内容将会追加到文件原有内容之后 |
ls > hello # 命令输出的内容不会在控制台显示,而是以覆盖的方式打印到文件hello中
ls >> hello # 命令输出的内容不会在控制台显示,而是以追加的方式打印到文件hello中
标准错误输出重定向
符号 | 含义 |
---|---|
2> | 重定向 stderr 的输出端,对于输出端的文件,其原有内容将被覆盖 |
2>> | 重定向 stderr 的输出端,输出内容将会追加到文件原有内容之后 |
2>&1 | 令 stderr 的输出端与 stdout 保持一致 |
ls >> hello 2>> log # 将 ls 的标准输出追加到 hello 中,标准错误输出追加到 log 中
ls >> hello 2>&1 # 将 ls 的标准输出和标准错误输出追加到 hello 中
管道
将一个命令的输出作为另一个命令的输入,即将一个命令的输出与另一个命令的输入连接起来,这种连接方式被称为管道,使用|
表示。
示例
ls -l | cat -n
alias
设置别名。别名有效期仅限本次登录账户期间,若要保持恒定,需修改配置文件。
选项
简写 | 含义 |
---|---|
-p | 列出所有已设置的别名 |
示例
alias -p # 列出所有已设置的别名
alias # 与上句等价
alias cp='cp -i' # 设置cp -i的别名为cp
echo
在标准输出打印内容。
选项
简写 | 含义 |
---|---|
-e | 使能转义符识别 |
-n | 不要加换行符(默认自动在结尾添加换行符) |
示例
echo hello
echo -e 'hello word!\nThis is Linux.'
echo -en 'hello word!\nThis is Linux.' >> hello # 向 hello 中追加内容
history
打印曾输入的命令
选项
简写 | 含义 |
---|---|
-c | 清除 |
示例
history # 显示所有
history 10 # 显示最近的10条
history -c # 清除所有
xargs
xargs 通过指定的途径获取源字符串,而后将其分割成多个参数,依次将参数传递给其后的命令(以下称其为实际命令)。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-L | K | 指定每次传入参数的个数(以行来分割参数) | |
-n | --max-args | K | 指定每次传入的参数个数(以不可见字符或指定的分割符来分割参数) |
-0 | --null | 指定\0 作为分割参数的分割符 | |
-d | --delimiter | character | 指定分割参数的分隔符 |
-E | string | 指定源字符串中的结尾字符串,此时仅传递结尾字符串前的参数(若也使用了-0 或-d ,则此命令无效) | |
-I | replace_str | 指定占位符,将占位符写在实际命令中,实际命令执行时,占位符会被替换为 xargs 传入的参数(一般指定{} 为占位符) | |
-a | --arg-file | file | 从指定的文件中读取参数(默认从 stdin 读取,所以使用标准输入重定向也可达到相同的效果) |
-p | --interactive | 每次执行实际命令时都询问 | |
-t | --verbose | 打印出每次执行的实际命令 |
注:
-L
、-n
、-I
互斥(POSIX规定)- 默认每次传递一个参数
- 默认以行分割参数
示例
echo -e 'hello\nDesktop' | xargs -L 2 cp # 将 hello 拷贝到 Desktop 目录下
echo 'hello Desktop' | xargs -n 2 cp # 与上句等价
echo -e '1.txt\n2.txt\n3.txt' | xargs -E '3.txt' -I {} -t cp {} Desktop # 将 1.txt 和 2.txt 拷贝到 Desktop 目录下
文本过滤器
读取数据,而后对数据做处理,最后输出的程序被称为过滤器(filter)。
cat
cat:concatenate files and print on the standard output,打印文件内容。
选项
简写 | 全写 | 含义 |
---|---|---|
-n | --number | 打印行号 |
示例
cat -n hello
cat >> hello # 将在终端输入的内容追加到 hello 中,按 Ctrl+d 退出编辑(Ctrl+d 代表EOF)
cat file1 file2 > file3 # 将 file1 和 file2 拼接起来,以覆盖的方式写入到 file3 中
tac
tac 是 cat 的倒序,顾名思义,该命令是以行倒序的方式打印文件内容。
rev
rev:reverse,以行内倒序的方式打印文件内容。
示例
tac hello | rev > olleh # 将 hello 的全部内容整体倒序,写入到 ollah 中
more
查看文档。浏览方式与 Vim 一致。more 会将文件全部载入,而 less 仅载入需要查看的部分,因此 less 的反馈速度更快。此外,less 的功能也比 more 更多。因此,推荐使用 less。
less
最佳的大型文档查看器。
head
查看文档前十行内容。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-n | --lines | K | 显示前 K 行内容 |
-c | --bytes | K | 显示前 K 个字节的内容 |
示例
head hello # 显示前10行
head -n 2 hello # 显示前2行
head -c 5 hello # 显示前5个字节
tail
查看文档后十行内容。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-f | --follow | 跟踪显示(若文件尾部有更新,则将同步显示到终端上) | |
-n | --lines | K | 显示后 K 行内容 |
-c | --bytes | K | 显示后 K 个字节的内容 |
示例
tail -f hello # 跟踪显示后10行
tail -n 2 hello # 显示后2行
tail -c 5 hello # 显示后5个字节
cut
grep
awk
sed
用户管理
useradd
useradd:add a user,添加用户。仅限超级用户使用。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-p | --password | password | 设置用户密码 |
-g | --gid | primary_group | 设置首选用户组(缺省时,程序创建一个与用户名同名的用户组,并将用户的 gid 设为该组) |
-G | --groups | group_1,[group_2],... | 用户将加入的用户组(两个用户组名之间用逗号隔开) |
-N | --no-user-group | 不创建同名的用户组(此时会将 gid 设为系统固有的一个用户组 user) | |
-d | --home-dir | home_directroy | 设置用户主目录(缺省时,程序在 /home 下创建同名的用户主目录) |
-e | --expiredate | MM/DD/YY | 设置过期时间(缺省时,设为永不过期) |
-c | --comment | string | 描述用户(类似于个性签名) |
示例
useradd -p 123456 -g happy -G eat,sleep -d /home/joyful -e 07/25/22 -c 'Enjoy yourself' Tom
usermod
usermod:modify a user account,修改用户信息。大部分选项及其使用方法与 useradd 一致。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-l | --login | new_name | 修改用户名 |
userdel
userdel:delete a user,删除用户。仅限超级用户使用。
示例
userdel Tom
passwd
passwd:password,修改用户密码。
示例
passwd # 修改当前用户的密码
passwd Tom # 修改用户 Tom 的密码,此命令仅限超级管理员使用
id
打印用户 ID 和所属组的 ID。
示例
id # 打印当前用户
id Tom # 打印 Tom 的
su
su:substitute user,在当前用户下嵌套另一用户的操作环境。可使用exit
命令退出。
示例
su Tom
sudo
获取权限。被超级管理员授权拥有超级管理员权限的用户,使用该命令来行使超级管理员权限。
示例
sudo userdel Tom
groupadd
groupadd:add a group,添加组。仅限超级用户使用。
示例
groupadd happy
groupmod
groupmod:modify a group,修改组信息。仅限超级用户使用。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-n | --new-name | new_name | 修改组名 |
示例
groupmod happy -n joyful
groupdel
groupadd:add a group,删除组。仅限超级用户使用。
示例
groupdel happy
搜索
find
文件查找。
首选项(real options)
简写 | 含义 |
---|---|
-P | 不跟随路径下的软链接(默认选项) |
-L | 跟随路径下的软链接 |
-H | 只跟随在搜索路径中指明的软链接 |
选项(options)
参数名 | 参数 | 含义 |
---|---|---|
-maxdepth | K | 最大目录深度 |
-mindepth | K | 最小目录深度 |
-regextype | type_name | 设置正则表达式的语法类型(默认使用 Emacs,其它类型使用man find 查看,这里不再赘述) |
查找条件(tests)
参数名 | 参数 | 含义 |
---|---|---|
-name | shell_pattern | 文件名 |
-regex | pattern | 使用正则表达式匹配文件名(包含路径的文件名) |
-type | [fdlbcps] | 文件类型(各符号的含义参看图表) |
-perm | MODE | MODE指定的权限文件必须有,未指定的权限文件必须没有(MODE的写法参照 chmod) |
-perm | -MODE | MODE指定的权限文件必须有,未指定的权限文件可有可无 |
-perm | /MODE | MODE指定的权限文件至少拥有一个,未指定的权限文件可有可无 |
-user | user_name | 文件所有者 |
-group | group_name | 文件所属组 |
-size | [+-]K[cwkMG] | 文件大小([+-]K 的含义看下表;cwkMG 为单位,具体含义看下表) |
-atime | [+-]K | 上次访问文件距今的时间(以天为单位)(访问、改变和修改的区别,见图表) |
-amin | [+-]K | 上次访问文件距今的时间时间(以分钟为单位) |
-ctime | [+-]K | 上次改变文件距今的时间时间(以天为单位) |
-cmin | [+-]K | 上次改变文件距今的时间时间(以分钟为单位) |
-mtime | [+-]K | 上次修改文件距今的时间时间(以天为单位) |
-mmin | [+-]K | 上次修改文件距今的时间时间(以分钟为单位) |
-newer[acm]t | reference_time | 目标文件的访问时间(a )或改变时间(c )或修改时间(m )比参考时间(reference_time )的更新(时间格式与date -d 的格式一致) |
-newer[acm][acm] | reference_file | 目标文件的访问时间(a )或改变时间(c )或修改时间(m )比参考文件(reference_file )的访问时间(a )或改变时间(c )或修改时间(m )的更新 |
符号 | 含义 |
---|---|
+K | 大于K(如-amin +10 表示上次访问距今超过10分钟) |
K | 等于K(如-amin 10 表示上次访问距今为10分钟) |
-K | 小于K(如-amin +10 表示上次访问距今在10分钟之内) |
符号 | 含义 |
---|---|
c | 1字节 |
w | 2字节 |
k | 1024字节 |
M | 1024k |
G | 1024M |
逻辑操作符(operators)
语法 | 含义 |
---|---|
\( expreesion \) | 括号(一些符号在命令行中有特殊的含义,在命令中使用时需加转义符\ ) |
\! expreesion 或 -not expreesion | 逻辑非 |
expreesion expreesion 或 expreesion -a expreesion 或 expreesion -and expreesion | 逻辑与 |
expreesion -o expreesion 或 expreesion -or expreesion | 逻辑或 |
动作(actions)
语法 | 含义 |
---|---|
对于找到的每个文件,打印完整的文件名(包括路径),然后换行 | |
-print0 | 对于找到的每个文件,打印完整的文件名,其后追加一个空字符 |
-printf format | 对于找到的每个文件,按格式打印(格式串中转义字符的含义,使用man find 查看,这里不再赘述) |
-fprintf file format | 对于找到的每个文件,按格式打印到文件中(格式串中转义字符的含义,使用man find 查看,这里不再赘述) |
-exec command {} \; | 对于找到的每个文件,都执行一次 command({}是占位符,即执行command时,{}将被具体的文件名替代) |
-exec command {} + | 对找到的全部文件执行一次 command |
语法
find [real_option] [search_path_1 [search_path_2] ...] [option_1 [option_2] ...] [operator_1] test_1 [operator_2] [test_2] ... [action_1 [action_2] ...]
示例
find /home -name '*.jpg' # 在 /home 下查找所有 jpg 文件
find . -maxdepth 1 \! -type f # 在当前目录下,限制搜索的最大目录深度为1,查找文件类型不是常规文件的所有文件
find -perm u=rw # 在当前目录下查找文件所有者仅拥有读写权限,组内用户和其它用户没有任何权限的文件
find -perm 600 # 与上句等价
find -perm -u=rw,g=r # 在当前目录下查找文件所有者拥有读写权限,组内用户拥有读权限的文件
find -perm -640 # 与上句等价
find -perm /a=r # 在当前目录下查找三类用户中至少有一类拥有读权限的文件
find -perm /444 # 与上句等价
find -H . /bin -size +20k # 在当前目录和 /tmp 下查找大于 20kbytes 的文件,若 /bin 为软链接,则其将被跟随,而其它软链接因未指明,所以将不会被跟随
find . -size +2G -o -mmin -10 # 在当前目录下查找大于 2Gbytes 或 10 分钟内修改过的文件
find . -size -1k -exec rm -f {} + # 将当前目录下小于 1kbytes 的文件一次性删除(rm仅执行了一次)
find . -size -1k -exec rm -f {} \; # 将当前目录下小于 1kbytes 的文件逐个删除(有多少个文件,就执行了多少次rm)
find . -size -1k -print | xargs rm -f # 与上句等价
find . -size -1k -print0 | xargs -0 rm -f # 与上句等价
find -newerat '1 days ago' # 查找一天之内访问过的文件
find -atime -1 # 与上句等价
find -neweram hello # 查找访问时间比 hello 的修改时间更近的文件
locate
使用文件名查找文件的绝对路径。locate
使用了/var/lib/mlocate/mlocate.db
数据库,查找速度比直接在目录结构上查找的find
命令快的多。但也存在缺点,首先,数据库是使用定时任务每天更新一次。当目录结构改变时,数据库不会同步更新,这就造成刚刚删除的文件,可能依然保留在数据库里;刚刚创建的文件,可能在数据库里查不到。为了提高查找的准确性,可以在使用locate
命令前,先调用updatedb
命令更新数据库,当然这可能花费较长的时间。其次,该命令仅支持用文件名来查找。
选项
简写 | 全写 | 参数 | 含义 |
---|---|---|---|
-c | --count | 仅输出结果的数量 | |
-l | --limit | K | 最多输出 K 个结果 |
-i | --ignore-case | 查找时忽略大小写 | |
-P | --no-follow | 不跟随符号连接(默认跟随) | |
-0 | --null | 每打印一个结果追加一个空字符(默认追加换行符) | |
-r | --regexp | 使用POSIX-Basic 正则表达式匹配文件的绝对路径 | |
--regex | 使用POSIX-Extended 正则表达式匹配文件的绝对路径 |
示例
locate Desk # 查找所有文件的绝对路径中包含有 Desk 字段的文件
locate /root/Desk # 查找所有文件的绝对路径中包含有 /root/Desk 字段的文件
locate -r '^/root/Desktop$' # 查找所有文件的绝对路径中匹配 ^/root/Desktop$ 的文件
updatedb
updatedb:update a database for mlocate,更新 mlocate 数据库。
示例
updatedb
文件打包压缩
tar
二级命令
符号 | 含义 |
---|---|
-c | 打包文件 |
-x | 开箱归档 |
-r | 追加文件 |
-A | 追加归档 |
-u | 更新内容 |
-t | 查看内容 |
选项
符号 | 含义 |
---|---|
-z | gzip压缩 |
-j | bz2压缩 |
-Z | compress压缩 |
-v | 显示处理过程 |
-f | 后接归档文件名 |
-C | 指定解压后文件路径 |
示例
tar -cvf all_jpg.tar *.jpg # 将当前目录下的所有jpg文件打包并显示过程,最终输出all_jpg.tar文件。
tar -czf all_jpg.tar.gz *.jpg # 将当前目录下的所有jpg文件打包并使用gzip进行压缩,最终输出all_jpg.tar文件。
tar -cjf all_jpg.tar.bz2 *.jpg # 将当前目录下的所有jpg文件打包并使用bz2进行压缩,最终输出all_jpg.tar文件。
tar -cZf all_jpg.tar.Z *.jpg # 将当前目录下的所有jpg文件打包并使用compress进行压缩,最终输出all_jpg.tar文件。
tar -xzvf all_jpg.tar.gz -C /home # 将all_jpg.tar.gz解压到/home路径下并显示过程。