文件管理类命令
命令1
cd
cd命令,也称为chdir(更改目录),是一个命令行操作系统shell命令,用于更改操作系统中的当前工作目录,如Unix,DOS,OS / 2,TRIPOS ,AmigaOS (如果给出了裸路径,暗示了cd),Microsoft Windows,ReactOS和Linux。它可以在shell脚本和批处理文件中使用。该命令也可以在开源MS-DOS模拟器DOSBox和EFI shell中使用。该命令在MPE / iX中命名为chdir。
在大多数操作系统中影响命令的系统调用是由POSIX定义的chdir。该命令类似于OpenVOS change_current_dir命令
cd本身或cd~将始终将您放在您的主目录中。
cd. 将离开您当前所在的目录(即您当前的目录不会更改)。如果shell的内部代码无法处理您正在重新创建的目录,这将非常有用;运行cd。将您的shell放在重新创建的目录中。
cd~username 将把你放在用户名的主目录中。
cd dir(没有/)会把你放在一个子目录中;例如,如果您在/ usr中,键入cd bin会将您放入/ usr / bin,而cd / bin会将您放入/ bin。
cd .. 会将你移动到一个目录。所以,如果你是/ usr / bin / tmp,cd ..会把你带到/ usr / bin,而cd ../ ..会把你带到/ usr(即两个级别)。您也可以使用此间接访问子目录。因此,从/ usr / bin / tmp,您可以使用cd ../../local转到/ usr / local。
cd - 将切换到上一个目录。例如,如果您在/ usr / bin / tmp中,并转到/ etc,则可以键入cd - 以返回/ usr / bin / tmp。您可以使用它在两个目录之间来回切换。
特殊符号包括~、-、..等。
~表示用户主目录,即HOME变量指定的目录,如root用户的主目录为/root。
[kiosk@foundation0 567]$ cd ~
[kiosk@foundation0 ~]$
-表示前一个工作目录。
[kiosk@foundation0 ~]$ cd -
/home/kiosk/567
[kiosk@foundation0 567]$
..表示上级目录。
[kiosk@foundation0 ~]$ cd -
/home/kiosk/567
[kiosk@foundation0 567]$ cd ..
[kiosk@foundation0 ~]$ pwd
/home/kiosk
.表示当前目录。
[kiosk@foundation0 ~]$ cd .
[kiosk@foundation0 ~]$ pwd
/home/kiosk
选项:
-P 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
[kiosk@foundation0 123]$ ln -s /tmp/123 567#创建软连接
[kiosk@foundation0 ~]$ ll
total 128
drwxrwxr-x. 2 kiosk kiosk 6 Feb 27 17:10 456
lrwxrwxrwx. 1 kiosk kiosk 8 Feb 27 17:12 567 -> /tmp/123
[kiosk@foundation0 ~]$ cd 567
[kiosk@foundation0 567]$ pwd
/home/kiosk/567 #路径显示是567
[kiosk@foundation0 123]$ cd ~
[kiosk@foundation0 ~]$ cd -P 567
[kiosk@foundation0 123]$ pwd
/tmp/123 #真实路径
(目录切换到567)
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
[kiosk@foundation0 ~]$ cd -L 567
[kiosk@foundation0 567]$ pwd
/home/kiosk/567
- 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录
(补充说明:.也是一个硬链接,是对目录的一个特殊硬链接)
命令2
ls
在计算中,ls是在Unix和类Unix操作系统中列出计算机文件的命令。 ls由POSIX和Single UNIX Specification指定。在没有任何参数的情况下调用时,ls列出当前工作目录中的文件。该命令也可以在EFI shell中使用。在其他环境中,例如DOS,OS / 2和Microsoft Windows,dir命令提供了类似的功能。
选项类型
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'--block-size=M' prints sizes in units of
1,048,576 bytes; see SIZE format below
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
modification of file status information);
with -l: show ctime and sort by name;
otherwise: sort by ctime, newest first
-C list entries by columns
--color[=WHEN] colorize the output; WHEN can be 'never', 'auto',
or 'always' (the default); more info below
-d, --directory list directories themselves, not their contents
-D, --dired generate output designed for Emacs' dired mode
-f do not sort, enable -aU, disable -ls --color
-F, --classify append indicator (one of /=>@|) to entries
--file-type likewise, except do not append ''
--format=WORD across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time like -l --time-style=full-iso
-g like -l, but do not list owner
--group-directories-first
group directories before files;
can be augmented with a --sort option, but any
use of --sort=none (-U) disables grouping
-G, --no-group in a long listing, don't print group names
-h, --human-readable with -l, print sizes in human readable format
(e.g., 1K 234M 2G)
--si likewise, but use powers of 1000 not 1024
-H, --dereference-command-line
follow symbolic links listed on the command line
--dereference-command-line-symlink-to-dir
follow each command line symbolic link
that points to a directory
--hide=PATTERN do not list implied entries matching shell PATTERN
(overridden by -a or -A)
--indicator-style=WORD append indicator with style WORD to entry names:
none (default), slash (-p),
file-type (--file-type), classify (-F)
-i, --inode print the index number of each file
-I, --ignore=PATTERN do not list implied entries matching shell PATTERN
-k, --kibibytes default to 1024-byte blocks for disk usage
-l use a long listing format
-L, --dereference when showing file information for a symbolic
link, show information for the file the link
references rather than for the link itself
-m fill width with a comma separated list of entries
-n, --numeric-uid-gid like -l, but list numeric user and group IDs
-N, --literal print raw entry names (don't treat e.g. control
characters specially)
-o like -l, but do not list group information
-p, --indicator-style=slash
append / indicator to directories
-q, --hide-control-chars print ? instead of nongraphic characters
--show-control-chars show nongraphic characters as-is (the default,
unless program is 'ls' and output is a terminal)
-Q, --quote-name enclose entry names in double quotes
--quoting-style=WORD use quoting style WORD for entry names:
literal, locale, shell, shell-always, c, escape
-r, --reverse reverse order while sorting
-R, --recursive list subdirectories recursively
-s, --size print the allocated size of each file, in blocks
-S sort by file size
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
time (-t), version (-v), extension (-X)
--time=WORD with -l, show time as WORD instead of default
modification time: atime or access or use (-u)
ctime or status (-c); also use specified time
as sort key if --sort=time
--time-style=STYLE with -l, show times using style STYLE:
full-iso, long-iso, iso, locale, or +FORMAT;
FORMAT is interpreted like in 'date'; if FORMAT
is FORMAT1
to non-recent files and FORMAT2 to recent files;
if STYLE is prefixed with 'posix-', STYLE
takes effect only outside the POSIX locale
-t sort by modification time, newest first
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
-u with -lt: sort by, and show, access time;
with -l: show access time and sort by name;
otherwise: sort by access time
-U do not sort; list entries in directory order
-v natural sort of (version) numbers within text
-w, --width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line
常见类型及例子
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
[root@server0 tmp]# ls -a
. 19.txt 7.txt systemd-private-U4UeGf
.. 1.txt 8.txt systemd-private-UpllOx
10.txt 20.txt 9.txt systemd-private-usovJD
-A:显示除影藏文件“.”和“..”以外的所有文件列表;
[root@server0 tmp]# ls -A
10.txt 18.txt 4.txt systemd-private-2Fzohz systemd-private-usovJD
11.txt 19.txt 567 systemd-private-B7vtVY systemd-private-v9b809
123 1.txt 5.txt systemd-private-bHZOU7 systemd-private-Yb0zgZ
--color=auto:默认的--color=auto。这是默认选项;
[root@server0 tmp]# alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
显示 ctime 但根据名称排序否则:根据 ctime 排序
[root@server0 tmp]# ls -i
20201256 10.txt 20201251 5.txt
20201257 11.txt 20201252 6.txt
20201258 12.txt 20201253 7.txt
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合
[root@server0 tmp]# ls -clt
total 0
-rw-r--r--. 1 root root 0 Feb 28 09:26 10.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 11.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 12.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 13.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 14.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 15.txt
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
[root@server0 tmp]# ls -ld
drwxrwxrwt. 22 root root 4096 Feb 28 14:29 .
(#仅显示当前目录,不显示其他内容)
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
[root@server0 tmp]# ls -D
10.txt 17.txt 2.txt 9.txt systemd-private-U4UeGf
11.txt 18.txt 3.txt systemd-private-2Fzohz systemd-private-UpllOx
123 19.txt 4.txt systemd-private-B7vtVY systemd-private-usovJD
12.txt 1.txt 567 systemd-private-bHZOU7 systemd-private-v9b809
13.txt 20.txt 5.txt systemd-private-dKm1nw systemd-private-Yb0zgZ
14.txt 21.txt 6.txt systemd-private-G6SMwJ systemd-private-yILolc
15.txt 22.txt 7.txt systemd-private-HJCqz6 systemd-private-yY3Xrm
16.txt 23.txt 8.txt systemd-private-huSQgJ
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
[root@server0 tmp]# ls -f
. systemd-private-usovJD 2.txt 14.txt
.. 567 3.txt 15.txt
.X11-unix systemd-private-yY3Xrm 4.txt 16.txt
.ICE-unix systemd-private-B7vtVY 5.txt 17.txt
.XIM-unix systemd-private-bHZOU7 6.txt 18.txt
.font-unix systemd-private-huSQgJ 7.txt 19.txt
.Test-unix systemd-private-Yb0zgZ 8.txt 20.txt
systemd-private-yILolc systemd-private-U4UeGf 9.txt 21.txt
systemd-private-UpllOx systemd-private-v9b809 10.txt 22.txt
systemd-private-dKm1nw .X0-lock 11.txt 23.txt
systemd-private-2Fzohz systemd-private-G6SMwJ 12.txt 123
systemd-private-HJCqz6 1.txt 13.txt
-g 类似 -l,但不列出所有者(仅列出组)
[root@server0 tmp]# groupadd 123
[root@server0 tmp]# chgrp 123 10.txt
[root@server0 tmp]# ls -al
total 12
drwxrwxrwt. 22 root root 4096 Feb 28 16:14 .
drwxr-xr-x. 17 root root 4096 Feb 28 09:18 ..
-rw-r--r--. 1 root 123 0 Feb 28 09:26 10.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 11.txt
[root@server0 tmp]# ls -g
total 0
-rw-r--r--. 1 123 0 Feb 28 09:26 10.txt
-G, –no-group 不列出任何有关组的信息
[root@server0 tmp]# ls -alG
total 12
drwxrwxrwt. 22 root 4096 Feb 28 16:14 .
drwxr-xr-x. 17 root 4096 Feb 28 09:18 ..
-rw-r--r--. 1 root 0 Feb 28 09:26 10.txt
-rw-r--r--. 1 root 0 Feb 28 09:26 11.txt
drwxr-xr-x. 2 root 6 Feb 28 14:29 123
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
[root@server0 tmp]# ls -alh
total 12K
drwxrwxrwt. 22 root root 4.0K Feb 28 16:14 .
drwxr-xr-x. 17 root root 4.0K Feb 28 09:18 ..
(#直接显示4.0k)
--si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
[root@server0 tmp]# ls -i
20201256 10.txt 20201251 5.txt
20201257 11.txt 20201252 6.txt
8846781 123 20201253 7.txt
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l(l) 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
[root@server0 /]# ls -l
total 32
lrwxrwxrwx. 1 root root 5 Feb 17 23:52 1.txt -> i.txt
lrwxrwxrwx. 1 root root 7 May 7 2014 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Jul 11 2014 boot
drwxr-xr-x. 19 root root 2860 Feb 28 09:18 dev
drwxr-xr-x. 133 root root 8192 Feb 28 16:14 etc
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
[root@server0 123]# ll
total 0
-rw-r--r--. 1 root root 0 Feb 28 17:54 222.txt
-rw-r--r--. 1 root root 0 Feb 28 17:56 223.txt
lrwxrwxrwx. 1 root root 7 Feb 28 17:56 225 -> 223.txt
lrwxrwxrwx. 1 root root 11 Feb 28 17:57 226 -> /tmp/12.txt
[root@server0 123]# ls -L
222.txt 223.txt 225 226
(#仅显示软连接,不显示软连接的实质)
-m 所有项目以逗号分隔,并填满整行行宽
[root@server0 tmp]# ls -m
10.txt, 11.txt, 123, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt,
19.txt, 1.txt, 20.txt, 21.txt, 22.txt, 23.txt
-o 类似 -l,显示文件的除组信息外的详细信息。
root@server0 tmp]# ls -o
total 0
-rw-r--r--. 1 root 0 Feb 28 09:26 10.txt
-rw-r--r--. 1 root 0 Feb 28 09:26 11.txt
drwxr-xr-x. 2 root 54 Feb 28 17:57 123
-rw-r--r--. 1 root 0 Feb 28 09:26 12.txt
(#不显示组信息)
-r, –reverse 依相反次序排列
[root@server0 123]# ls
222.txt 223.txt 225 226
[root@server0 123]# ls -r
226 225 223.txt 222.txt
-R, –recursive 同时列出所有子目录层
[root@server0 123]# ls -lR
.:
total 0
-rw-r--r--. 1 root root 0 Feb 28 17:54 222.txt
-rw-r--r--. 1 root root 0 Feb 28 17:56 223.txt
lrwxrwxrwx. 1 root root 7 Feb 28 17:56 225 -> 223.txt
lrwxrwxrwx. 1 root root 11 Feb 28 17:57 226 -> /tmp/12.txt
drwxr-xr-x. 2 root root 20 Feb 28 18:03 456
./456:
total 0
-rw-r--r--. 1 root root 0 Feb 28 18:03 227.txt
-s, –size 以块大小为单位列出所有文件的大小
[root@server0 123]# ls -s
total 8
4 222.txt 4 223.txt 0 225 0 226 0 456
-S 根据文件大小排序
[root@server0 123]# ls -Ssal
total 12
4 drwxrwxrwt. 22 root root 4096 Feb 28 18:04 ..
0 drwxr-xr-x. 3 root root 64 Feb 28 18:03 .
4 -rw-r--r--. 1 root root 39 Feb 28 18:04 223.txt
0 drwxr-xr-x. 2 root root 20 Feb 28 18:03 456
4 -rw-r--r--. 1 root root 16 Feb 28 18:04 222.txt
0 lrwxrwxrwx. 1 root root 11 Feb 28 17:57 226 -> /tmp/12.txt
0 lrwxrwxrwx. 1 root root 7 Feb 28 17:56 225 -> 223.txt
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改时间排序
[root@server0 123]# stat 222.txt
File: ‘222.txt’
Size: 16 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 8846783 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-02-28 18:07:24.849515516 +0800
Modify: 2019-02-28 18:04:33.993515516 +0800
Change: 2019-02-28 18:04:33.993515516 +0800
Birth: -
[root@server0 123]# stat 223.txt
File: ‘223.txt’
Size: 39 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 8846784 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-02-28 17:56:22.905515516 +0800
Modify: 2019-02-28 18:04:49.538515516 +0800
Change: 2019-02-28 18:04:49.538515516 +0800
[root@server0 123]# ls -alt #升序
total 12
-rw-r--r--. 1 root root 39 Feb 28 18:04 223.txt
-rw-r--r--. 1 root root 16 Feb 28 18:04 222.txt
drwxrwxrwt. 22 root root 4096 Feb 28 18:04 ..
drwxr-xr-x. 2 root root 20 Feb 28 18:03 456
drwxr-xr-x. 3 root root 64 Feb 28 18:03 .
lrwxrwxrwx. 1 root root 11 Feb 28 17:57 226 -> /tmp/12.txt
lrwxrwxrwx. 1 root root 7 Feb 28 17:56 225 -> 223.txt
-u 配合 -lt:显示访问时间而且依访问时间排序
[root@server0 tmp]# ls -ult
total 0
lrwxrwxrwx. 1 root root 3 Mar 1 16:34 567 -> 123
drwx------. 3 root root 16 Mar 1 11:23 systemd-private-SH7owA
drwx------. 3 root root 16 Mar 1 11:23 systemd-private-1zuk9W
drwxr-xr-x. 3 root root 64 Feb 28 18:03 123
-rw-r--r--. 1 root 123 0 Feb 28 09:26 10.txt
[root@server0 tmp]# echo 123 > 10.txt
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-02-28 09:26:31.948515516 +0800
[root@server0 tmp]# cat 10.txt
123
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-01 16:36:59.077557282 +0800
[root@server0 tmp]# ls -ult
total 4
-rw-r--r--. 1 root 123 4 Mar 1 16:36 10.txt
lrwxrwxrwx. 1 root root 3 Mar 1 16:34 567 -> 123
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
[root@server0 tmp]# ls -U
systemd-private-yILolc systemd-private-huSQgJ 8.txt 18.txt
systemd-private-UpllOx systemd-private-Yb0zgZ 9.txt 19.txt
systemd-private-dKm1nw systemd-private-U4UeGf 10.txt 20.txt
-v 根据版本进行排序
[root@server0 tmp]# ls -v
1.txt 9.txt 17.txt 567 systemd-private-Yb0zgZ
2.txt 10.txt 18.txt systemd-private-1zuk9W systemd-private-bHZOU7
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
Example1
[root@server0 tmp]# echo $COLUMNS
100
[root@server0 tmp]# ls -w 10
10.txt
11.txt
123
12.txt
13.txt
14.txt
Example2[root@server0 tmp]# ls -w 100
10.txt 11.txt 123 12.txt 13.txt 14.txt 15.txt 16.txt 17.txt 18.txt 19.txt 1.txt 20.txt 21.txt 22.txt 23.txt 2.txt 3.txt 4.txt 567 5.txt 6.txt
-x 逐行列出项目而不是逐栏列出
[root@server0 tmp]# ls -x
10.txt 11.txt 123
12.txt 13.txt 14.txt
15.txt 16.txt 17.txt
-X 根据扩展名排序
[root@server0 tmp]# ls -X
123 systemd-private-HJCqz6 systemd-private-yILolc 15.txt 21.txt 6.txt
567 systemd-private-huSQgJ systemd-private-yY3Xrm 16.txt 22.txt 7.txt
-1 每行只列出一个文件
[root@server0 tmp]# ls -1
10.txt
11.txt
123
–help 显示此帮助信息并离开
–version 显示版本信息并离开
命令3
mkdir
mkdir-生成目录
简介
mkdir[选项]…目录。。。
描述
如果目录不存在,则创建目录。
长选项的强制参数对短选项也是强制的。
-m,-MODE=MODE
设置文件模式(如chmod),而不是a=rwx-umask
[root@server0 tmp]# mkdir 234
[root@server0 tmp]# mkdir -m 777 456
[root@server0 tmp]# ls -al | grep -E '234|456'
drwxr-xr-x. 2 root root 6 Mar 1 18:19 234
drwxrwxrwx. 2 root root 6 Mar 1 18:19 456
-p,-parents
没有错误如果存在,根据需要创建父目录
[root@server0 tmp]# mkdir -p /234/123/123/12345
[root@server0 tmp]# cd /234
[root@server0 234]# ls -alR
.:
total 4
drwxr-xr-x. 3 root root 16 Mar 1 18:21 .
drwxr-xr-x. 18 root root 4096 Mar 1 18:21 ..
drwxr-xr-x. 3 root root 16 Mar 1 18:21 123
./123:
total 0
drwxr-xr-x. 3 root root 16 Mar 1 18:21 .
drwxr-xr-x. 3 root root 16 Mar 1 18:21 ..
drwxr-xr-x. 3 root root 18 Mar 1 18:21 123
./123/123:
total 0
drwxr-xr-x. 3 root root 18 Mar 1 18:21 .
drwxr-xr-x. 3 root root 16 Mar 1 18:21 ..
drwxr-xr-x. 2 root root 6 Mar 1 18:21 12345
./123/123/12345:
total 0
drwxr-xr-x. 2 root root 6 Mar 1 18:21 .
drwxr-xr-x. 3 root root 18 Mar 1 18:21 ..
-V,-verbose
为每个创建的目录打印消息
[root@server0 234]# mkdir -v abc
mkdir: created directory ‘abc’
-Z,--context[=CTX]
将每个已创建目录的SELinux安全上下文设置为默认类型或
CTX(如有规定)
[root@server0 234]# mkdir -Z def
[root@server0 234]# ls -Z
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 123
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 abc
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 def
缺示例 待补充
--help
display this help and exit
--version
output version information and exit
命令4
touch
作用:更改文件的时间戳,创建文件
用法:touch[选项] ...文件...
将每个FILE的访问和修改时间更新为当前时间。
除非-c或-h,否则不存在的FILE参数将为空
供应。
一个FILE参数字符串 - 被特殊处理并导致触摸
更改与标准输出关联的文件的时间。
对于空头期权而言,长期期权的强制性论据也是强制性的。
-a 仅更改访问时间(仅更改atime)
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-04 10:59:48.764737455 +0800
Modify: 2019-03-01 16:36:37.375557282 +0800
Change: 2019-03-04 10:59:17.993737455 +0800
Birth: -
[root@server0 tmp]# touch -a 10.txt
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-04 11:01:27.206737455 +0800
-c, - no-create不创建任何文件
[root@server0 tmp]# touch -c 12333333.txt
[root@server0 tmp]# ls
10.txt 19.txt 456 systemd-private-1zuk9W systemd-private-u2kx8c
11.txt 1.txt 4.txt systemd-private-2Fzohz systemd-private-U4UeGf
123 20180901 567 systemd-private-5GFH6G systemd-private-UpllOx
12.txt 20.txt 5.txt systemd-private-B7vtVY systemd-private-usovJD
13.txt 21.txt 678 systemd-private-bHZOU7 systemd-private-wqXel1
14.txt 22.txt 6.txt systemd-private-dKm1nw systemd-private-Yb0zgZ
15.txt 234 789 systemd-private-HJCqz6 systemd-private-yILolc
16.txt 23.txt 7.txt systemd-private-huSQgJ systemd-private-yY3Xrm
17.txt 2.txt 8.txt systemd-private-sFzcdw
18.txt 3.txt 9.txt systemd-private-SH7owA
-d, - date = STRING解析STRING并使用它而不是当前时间(指定日期参数)
[root@server0 tmp]# touch -d 20180901 122222.txt
[root@server0 tmp]# ll
total 4
-rw-r--r--. 1 root 123 4 Mar 1 16:36 10.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 11.txt
-rw-r--r--. 1 root root 0 Sep 1 2018 122222.txt
drwxr-xr-x. 3 root root 64 Feb 28 18:03 123
-f(忽略)
-h, - no-dereference影响每个符号链接而不是任何引用
file(仅适用于可以更改的系统)
符号链接的时间戳)
-m仅更改修改时间(mtime和ctime都会改变)
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-04 11:01:27.206737455 +0800
Modify: 2019-03-04 12:21:06.142737455 +0800
Change: 2019-03-04 12:21:06.142737455 +0800
Birth: -
[root@server0 tmp]# touch -m 10.txt
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-04 11:01:27.206737455 +0800
Modify: 2019-03-04 12:21:36.918737455 +0800
Change: 2019-03-04 12:21:36.918737455 +0800
-r, - reference = FILE使用此文件的时间而不是当前时间
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-04 11:01:27.206737455 +0800
Modify: 2019-03-04 12:21:36.918737455 +0800
Change: 2019-03-04 12:21:36.918737455 +0800
Birth: -
[root@server0 tmp]# stat 11.txt
File: ‘11.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 20201257 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-02-28 09:26:31.948515516 +0800
Modify: 2019-02-28 09:26:31.948515516 +0800
Change: 2019-02-28 09:26:31.948515516 +0800
Birth: -
[root@server0 tmp]# touch -r 11.txt 10.txt
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-02-28 09:26:31.948515516 +0800
Modify: 2019-02-28 09:26:31.948515516 +0800
Change: 2019-03-04 13:54:20.499737455 +0800
Birth: -
-t STAMP使用[[CC] YY] MMDDhhmm [.ss]代替当前时间
--time = WORD更改指定的时间:
WORD是access,atime或use:相当于-a
WORD是modify或mtime:相当于-m
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-02-28 09:26:31.948515516 +0800
Modify: 2019-02-28 09:26:31.948515516 +0800
Change: 2019-03-04 13:54:20.499737455 +0800
Birth: -
[root@server0 tmp]# touch -t 201809092323 10.txt
[root@server0 tmp]# stat 10.txt
File: ‘10.txt’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20201256 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 1001/ 123)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-09-09 23:23:00.000000000 +0800
Modify: 2018-09-09 23:23:00.000000000 +0800
Change: 2019-03-04 14:10:40.173737455 +0800
Birth: -
--help显示此帮助并退出
--version输出版本信息并退出
命令5
mv
移动文件或重命名文件
mv --help
用法:mv [OPTION] ... [ - T] SOURCE DEST
或者:mv [OPTION] ......来源......目录
或者:mv [OPTION] ... -t DIRECTORY SOURCE ...
将SOURCE重命名为DEST,或将SOURCE(s)移至DIRECTORY。
--backup [= 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:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。
-b --backup但不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。
[root@server0 tmp]# cd 567
[root@server0 567]# ls
222.txt 223.txt 225 226 456
[root@server0 567]# cd ..
[root@server0 tmp]# touch 222.txt
[root@server0 tmp]# mv -b 222.txt /tmp/567
mv: overwrite ‘/tmp/567/222.txt’? y
[root@server0 tmp]# cd 567
[root@server0 567]# ls
222.txt 222.txt~ 223.txt 225 226 456
(覆盖前生成备份文件)
-f, - force在覆盖之前不提示
[root@server0 tmp]# touch 223.txt
[root@server0 tmp]# echo 232323 > 223.txt
[root@server0 tmp]# mv -f 223.txt /tmp/567/223.txt
[root@server0 tmp]# cd 567
[root@server0 567]# ls
222.txt 222.txt~ 223.txt 225 226 456
[root@server0 567]# cat 223
cat: 223: No such file or directory
[root@server0 567]# cat 223.txt
232323
-i, - 覆盖前的交互式提示(alias 默认)
alias mv='mv -i'
-n, - no-clobber不会覆盖现有文件
如果指定-i,-f,-n中的多个,则只有最后一个生效。
[root@server0 tmp]# mv -n 223.txt /tmp/567/
[root@server0 tmp]# cd 567
[root@server0 567]# stat 223.txt
File: ‘223.txt’
Size: 7 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 20203461 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-04 15:25:53.897737455 +0800
Modify: 2019-03-04 15:25:12.776737455 +0800
Change: 2019-03-04 15:25:32.588737455 +0800
Birth: -
[root@server0 567]# ls
222.txt 222.txt~ 223.txt 225 226 456
--strip-trailing-slashes从每个SOURCE中删除任何尾部斜杠
争论
-S, - stuff = SUFFIX覆盖通常的备份后缀
[root@server0 tmp]# mv -S 23 223.txt /tmp/567(#23为后缀)
mv: overwrite ‘/tmp/567/223.txt’? y
[root@server0 tmp]# cd 567
[root@server0 567]# ls
222.txt 222.txt~ 223.txt 223.txt23 225 226 456
-t, - target-directory = DIRECTORY将所有SOURCE参数移动到DIRECTORY
[root@server0 567]# mv -t /tmp/ 223.txt
[root@server0 567]# cd ..
[root@server0 tmp]# ls -t
123 14.txt 7.txt
223.txt 15.txt systemd-private-U4UeGf
223
-T, - no-target-directory将DEST视为普通文件
普通模式
-u, - update仅在SOURCE文件较新时移目标文件
[root@server0 tmp]# mv -u 34.txt /tmp/123/
[root@server0 tmp]# cd 123
[root@server0 123]# stat 34.txt
File: ‘34.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 8846753 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-04 17:01:01.855737455 +0800
Modify: 2019-03-04 17:01:01.855737455 +0800
Change: 2019-03-04 17:01:01.855737455 +0800
Birth: -
[root@server0 123]# cd ..
[root@server0 tmp]# ls
10.txt 19.txt 2.txt 7.txt systemd-private-sFzcdw
122222.txt 1.txt 34.txt
(#文件比现在的新就不移动文件)
-v, - verbose解释正在做什么
[root@server0 tmp]# mv -v 34.txt /tmp/123/
mv: overwrite ‘/tmp/123/34.txt’? y
‘34.txt’ -> ‘/tmp/123/34.txt’
-Z, - context设置SELinux目的地的安全上下文文件为默认类型
[root@server0 tmp]# ls -Z 35.txt
-rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 35.txt
[root@server0 tmp]# mv -Z 35.txt /var/www/
[root@server0 tmp]# ls -Z /var/www/
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 35.txt
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 ht
--help显示此帮助并退出
--version输出版本信息并退出
命令6
cp
cp - 复制文件和目录
语法
-a, - 与-dR --preserve = all相同(含目录)
-a 会保留原文件或目录的属性
[root@server0 tmp]# cp -a 1* /tmp/cpuse
[root@server0 cpuse]# ls
10.txt 1222.txt 12.txt 14.txt 16.txt 18.txt 1.txt
122222.txt 123 13.txt 15.txt 17.txt 19.txt
--attributes-only不复制文件数据,只复制属性
[root@server0 tmp]# chmod 777 10.txt
[root@server0 tmp]# ls -al
total 24
drwxrwxrwt. 31 root root 4096 Mar 4 18:14 .
drwxr-xr-x. 18 root root 4096 Mar 4 14:35 ..
-rwxrwxrwx. 1 root 123 4 Sep 9 23:23 10.txt
-rw-r--r--. 1 root root 0 Feb 28 09:26 19.txt
[root@server0 tmp]# cp --attributes-only --preserve 19.txt 10.txt
[root@server0 tmp]# ls -al
total 24
drwxrwxrwt. 31 root root 4096 Mar 4 18:14 .
drwxr-xr-x. 18 root root 4096 Mar 4 14:35 ..
-rw-r--r--. 1 root root 4 Feb 28 09:26 10.txt
--backup [= CONTROL]备份每个现有目标文件
[root@server0 tmp]# cp --backup 10.txt 1900.txt
[root@server0 tmp]# cat 1900.txt
123
-b --backup但不接受参数
--copy-contents在递归时复制特殊文件的内容
-d 与--no-dereference --preserve = links相同
-f, - force如果不能存在现有目标文件打开,删除它并再试一次(此选项 在使用-n选项时被忽略)
[root@server0 tmp]# cd 12
[root@server0 12]# touch {5..9}.txt
[root@server0 12]# cd ..
[root@server0 tmp]# echo 1212121212112 > 5.txt
[root@server0 tmp]# cp -f 5.txt /tmp/12
cp: overwrite ‘/tmp/12/5.txt’? y
[root@server0 tmp]# ls /tmp/12
5.txt 6.txt 7.txt 8.txt 9.txt
[root@server0 tmp]# ls -al /tmp/12
total 8
drwxr-xr-x. 2 root root 66 Mar 5 10:36 .
drwxrwxrwt. 22 root root 4096 Mar 5 10:35 ..
-rw-r--r--. 1 root root 14 Mar 5 10:39 5.txt
-i, - 覆盖前的交互式提示(覆盖前一个-n选项,默认选项)
[root@server0 tmp]# alias
alias cp='cp -i'
-H 遵循SOURCE中的命令行符号链接(保持对源的符号链接)
(关于-HL选项的详细理解,参考 https://superuser.com/questions/593196/cp-h-vs-cp-l-what-is-a-command-line-symbolic-link )
[root@server0 tmp]# ln -s 8.txt 123
[root@server0 tmp]# ls -al
lrwxrwxrwx. 1 root root 5 Mar 5 10:57 123 -> 8.txt
[root@server0 tmp]# cp -H 123 13
[root@server0 tmp]# cd 13
[root@server0 13]# ls
123 233
[root@server0 13]# file 123
123: empty
[root@server0 13]# cd ..
[root@server0 tmp]# file 123
123: symbolic link to `8.txt'
-l, - 链接硬链接文件而不是复制()
[root@server0 tmp]# cp -l 2.txt 2H
[root@server0 tmp]# echo 12312312312321 > 2.txt
[root@server0 tmp]# file 2H
2H: ASCII text
[root@server0 tmp]# cat 2H
12312312312321
-L, - dereference始终遵循SOURCE中的符号链接(仅复制文件本身,不复制符号链接内容,如果符号链接为空,将不进行复制)
(关于-HL选项的详细理解,参考 https://superuser.com/questions/593196/cp-h-vs-cp-l-what-is-a-command-line-symbolic-link )
[root@server0 tmp]# ls -al
total 24
drwxrwxrwt. 25 root root 4096 Mar 5 16:03 .
drwxr-xr-x. 17 root root 4096 Mar 5 16:02 ..
drwxr-xr-x. 3 root root 76 Mar 5 10:45 12
lrwxrwxrwx. 1 root root 5 Mar 5 10:57 123 -> 8.txt
[root@server0 tmp]# cp -L 123 /tmp/12
[root@server0 tmp]# cd /tmp/12
[root@server0 12]# ls
[root@server0 12]# ls -al
total 8
drwxr-xr-x. 3 root root 86 Mar 5 16:06 .
drwxrwxrwt. 25 root root 4096 Mar 5 16:03 ..
-rw-r--r--. 1 root root 0 Mar 5 16:06 123
(-HL的示例如下)
[root@server0 tmp]# mkdir -p test1/test2
[root@server0 tmp]# mkdir -p test3
[root@server0 tmp]# cd test1
[root@server0 test1]# ls
test2
[root@server0 test1]# echo 123123 > testonly
[root@server0 test1]# ls
test2 testonly
[root@server0 test1]# touch 213123.txt
[root@server0 test1]# ln -s testonly testfor
[root@server0 test1]# cd test2
[root@server0 test2]# touch test123
[root@server0 test2]# ln -s test2 test2use
[root@server0 test2]# ls
test123 test2use
[root@server0 test2]# ls -al
total 0
drwxr-xr-x. 2 root root 35 Mar 5 10:14 .
drwxr-xr-x. 3 root root 64 Mar 5 10:13 ..
-rw-r--r--. 1 root root 0 Mar 5 10:13 test123
lrwxrwxrwx. 1 root root 5 Mar 5 10:14 test2use -> test2
[root@server0 test2]# cd ..
[root@server0 test1]# cd ..
[root@server0 tmp]# cp -Hr test1 test3
[root@server0 tmp]# cd test3
[root@server0 test3]# ls-al
bash: ls-al: command not found...
[root@server0 test3]# ls -al
total 4
drwxr-xr-x. 3 root root 18 Mar 5 10:20 .
drwxrwxrwt. 34 root root 4096 Mar 5 10:18 ..
drwxr-xr-x. 3 root root 64 Mar 5 10:20 test1
[root@server0 test3]# cdtest1
bash: cdtest1: command not found...
[root@server0 test3]# cd test1
[root@server0 test1]# ls -al
total 4
drwxr-xr-x. 3 root root 64 Mar 5 10:20 .
drwxr-xr-x. 3 root root 18 Mar 5 10:20 ..
-rw-r--r--. 1 root root 0 Mar 5 10:20 213123.txt
drwxr-xr-x. 2 root root 35 Mar 5 10:20 test2
lrwxrwxrwx. 1 root root 8 Mar 5 10:20 testfor -> testonly
-rw-r--r--. 1 root root 7 Mar 5 10:20 testonly
[root@server0 test1]# cd test2
[root@server0 test2]# ls -al
total 0
drwxr-xr-x. 2 root root 35 Mar 5 10:20 .
drwxr-xr-x. 3 root root 64 Mar 5 10:20 ..
-rw-r--r--. 1 root root 0 Mar 5 10:20 test123
lrwxrwxrwx. 1 root root 5 Mar 5 10:20 test2use -> test2
[root@server0 test2]# cd ..
[root@server0 test1]# cd ..
[root@server0 test3]# rm -rf /tmp/test3/test1
[root@server0 test3]# ls
[root@server0 test3]# cd ..
[root@server0 tmp]# cp -Lr test1 test3
cp: cannot stat ‘test1/test2/test2use’: No such file or directory
[root@server0 tmp]# cd test3
[root@server0 test3]# ls
test1
[root@server0 test3]# cd test1
[root@server0 test1]# ls
213123.txt test2 testfor testonly
[root@server0 test1]# ls -al
total 8
drwxr-xr-x. 3 root root 64 Mar 5 10:23 .
drwxr-xr-x. 3 root root 18 Mar 5 10:23 ..
-rw-r--r--. 1 root root 0 Mar 5 10:23 213123.txt
drwxr-xr-x. 2 root root 20 Mar 5 10:23 test2
-rw-r--r--. 1 root root 7 Mar 5 10:23 testfor
-rw-r--r--. 1 root root 7 Mar 5 10:23 testonly
[root@server0 test1]# cd test2
[root@server0 test2]# ls
test123
-n, - no-clobber不会覆盖现有文件(覆盖前一个-i选项)
复制但是不覆盖原文件
[root@server0 tmp]# cp -ni 123 12
cp: overwrite ‘12/123’? y
[root@server0 tmp]# stat 123
File: ‘123’ -> ‘8.txt’
Size: 5 Blocks: 0 IO Block: 4096 symbolic link
Device: fd01h/64769d Inode: 20198311 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-05 10:57:56.887021713 +0800
Modify: 2019-03-05 10:57:55.302021713 +0800
Change: 2019-03-05 10:57:55.302021713 +0800
Birth: -
[root@server0 tmp]# cd 12
[root@server0 12]# stat 123
File: ‘123’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 8846753 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-05 16:06:18.399263140 +0800
Modify: 2019-03-05 16:24:29.036263140 +0800
Change: 2019-03-05 16:24:29.036263140 +0800
Birth: -
-P, - no-dereference从不遵循SOURCE中的符号链接(源里面复制符号链接如果没有链接文件会亮红,不检查符号链接的可靠性)
[root@server0 tmp]# cp -P 123 13
[root@server0 tmp]# cd 13
[root@server0 13]# ls
123 233
[root@server0 13]# ls -al
total 4
drwxr-xr-x. 3 root root 26 Mar 5 16:39 .
drwxrwxrwt. 25 root root 4096 Mar 5 16:30 ..
lrwxrwxrwx. 1 root root 5 Mar 5 16:39 123 -> 8.txt
-p与--preserve = mode,ownership,timestamps相同
--preserved [= ATTR_LIST]保留指定的属性(默认值: 模式,所有权,时间戳,如果可能的话 其他属性:context,links,xattr, 所有
-c已弃用,与--preserve = context相同
--no-preserve = ATTR_LIST不保留指定的属性
-- parents在DIRECTORY下使用完整的源文件名
递归复制-R,-r, - 递归复制目录
[root@server0 tmp]# cp -rp test1 test3
[root@server0 tmp]# cd test3
[root@server0 test3]# ls -al
total 8
drwxr-xr-x. 3 root root 64 Mar 5 10:13 .
drwxrwxrwt. 34 root root 4096 Mar 5 10:35 ..
-rw-r--r--. 1 root root 0 Mar 5 10:12 213123.txt
drwxr-xr-x. 2 root root 35 Mar 5 10:14 test2
lrwxrwxrwx. 1 root root 8 Mar 5 10:13 testfor -> testonly
-rw-r--r--. 1 root root 7 Mar 5 10:12 testonly
--reflink [= WHEN]控制克隆/ CoW副本。见下文
--remove-destination之前删除每个现有目标文件
试图打开它(与--force对比)
--sparse = WHEN控制稀疏文件的创建。见下文
--strip-trailing-slashes从每个SOURCE中删除任何尾部斜杠争论
-s, - symbol-link制作符号链接而不是复制
[root@server0 tmp]# cp -s 6.txt 666
[root@server0 tmp]# ls -al 666
lrwxrwxrwx. 1 root root 5 Mar 5 10:37 666 -> 6.txt
-S, - stuff = SUFFIX覆盖通常的备份后缀(和-b一起使用)
[root@server0 tmp]# cp -b --suffix=exe 10.txt test1
cp: overwrite ‘test1/10.txt’? y
[root@server0 tmp]# cd test1
[root@server0 test1]# ls
10.txt 10.txtexe 213123.txt test2 testfor testonly
-t, - target-directory = DIRECTORY将所有SOURCE参数复制到DIRECTORY中
[root@server0 test1]# cp -t /tmp/test1 /tmp/19.txt
[root@server0 test1]# ls
10.txt 10.txtexe 19.txt 213123.txt test2 testfor testonly
-T, - no-target-directory将DEST视为普通文件
正常模式
-u, - 仅当SOURCE文件较新时才更新比目标文件或当目标文件丢失
(如果另一边文件更新就不进行覆盖)
[root@server0 test1]# echo 1212121 > 19.txt
[root@server0 test1]# cp -ut /tmp/test1 /tmp/19.txt
[root@server0 test1]# cat 19.txt
1212121
-v, - verbose解释正在做什么
[root@server0 test1]# echo 2323232323 >> /tmp/19.txt
[root@server0 test1]# cp -v /tmp/19.txt 19.txt
cp: overwrite ‘19.txt’? y
‘/tmp/19.txt’ -> ‘19.txt’
[root@server0 test1]# cat 19.txt
2323232323
-x, - one-file-system保留在此文件系统上
-Z, - context [= CTX]设置目的地的SELinux安全上下文文件为默认类型,如果指定则为CTX(保留安全上下文)
[root@server0 test1]# ls -Z 19.txt
-rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 19.txt
[root@server0 test1]# cp -Z 19.txt /var/www/
[root@server0 test1]# ls -Z /var/www/19.txt
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/19.txt
--help显示此帮助并退出
--version输出版本信息并退出
命令7
rmdir
Remove the DIRECTORY(ies), if they are empty.
(移除目录,如果那个目录是空的)
--ignore-fail-on-non-empty
ignore each failure that is solely because a directory
is non-empty
-p, --parents(移除多级目录)
remove DIRECTORY and its ancestors; e.g., 'rmdir -p a/b/c' is
similar to 'rmdir a/b/c a/b a'
[root@server0 test1]# mkdir -p test1/test2/test3/test4
[root@server0 test1]# touch test1/test2/test3/123
[root@server0 test1]# rmdir -p test1/test2/test3
rmdir: failed to remove ‘test1/test2/test3’: Directory not empty
[root@server0 test1]# rm test1/test2/test3/123
rm: remove regular empty file ‘test1/test2/test3/123’? y
[root@server0 test1]# rmdir -p test1/test2/test3
rmdir: failed to remove ‘test1/test2/test3’: Directory not empty
[root@server0 test1]# rmdir -p test1/test2/test3/test4
[root@server0 test1]# rmdir -p test1/test2/test3/
rmdir: failed to remove ‘test1/test2/test3/’: No such file or directory
-v, --verbose
output a diagnostic for every directory processed
--help display this help and exit
命令8
rm
rm - remove files or directories
(删除文件或文件夹 使用该命令需要谨慎)
OPTIONS(选项)
删除(取消链接)文件。
-f, - force
忽略不存在的文件和参数,永远不会提示
[root@server0 test1]# ls
10.txt 10.txtexe 19.txt 213123.txt test2 testfor testonly
[root@server0 test1]# rm -f 10.txtexe
[root@server0 test1]# ls
10.txt 19.txt 213123.txt test2 testfor testonly
-i 在每次删除之前提示
alias rm='rm -i' 默认值
-I 在删除三个以上文件之前提示一次,或者在递归删除时提示;比-i更少侵入,同时仍然可以防止大多数错误
[root@server0 test3]# touch 1{2..9}.txt
[root@server0 test3]# ls
12.txt 13.txt 14.txt 15.txt 16.txt 17.txt 18.txt 19.txt
[root@server0 test3]# rm -I 1*
rm: remove 8 arguments? y
--interactive [= WHEN]
根据WHEN提示:从不,一次(-I)或总是(-i);
没有WHEN,总是提示
--one-file-system
在递归删除层次结构时,跳过文件系统上与目标命令行参数不同的任何目录
--no-preserve-root
不要特别对待'/'
--preserve-root
不要删除'/'(默认)
-r,-R, - recursive
以递归方式删除目录及其内容
[root@server0 test1]# mkdir -p test3/test4
[root@server0 test1]# touch test3/test4/1{2..9}.txt
[root@server0 test1]# rm -rf test3
[root@server0 test1]# ls
10.txt 19.txt 213123.txt test2 testfor testonly
-d, - dir
删除空目录
[root@server0 test1]# mkdir testnull
[root@server0 test1]# rm testnull
rm: cannot remove ‘testnull’: Is a directory
[root@server0 test1]# rm -d testnull
rm: remove directory ‘testnull’? y
-v, - verbose
解释正在做什么
[root@server0 test1]# rm -v 10.txt
rm: remove regular file ‘10.txt’? y
removed ‘10.txt’
--help显示此帮助并退出
命令9
chmod
将每个文件的模式更改为MODE。
使用--reference,将每个FILE的模式更改为RFILE的模式。
(使用该命令时,可以先查询umask值)
-c, - 更改类似于详细信息,但仅在进行更改时报告
[root@server0 test1]# touch 10.txt
[root@server0 test1]# chmod -c 777 10.txt
mode of ‘10.txt’ changed from 0644 (rw-r--r--) to 0777 (rwxrwxrwx)
(#有一段提示信息)
-f, - silent, - quiet抑制大多数错误消息
[root@server0 test1]# chmod -f 755 10.txt
[root@server0 test1]# ls -al 10.txt
-rwxr-xr-x. 1 root root 0 Mar 5 16:33 10.txt
-v, - verbose为每个处理的文件输出诊断
[root@server0 test1]# chmod -v 722 10.txt
mode of ‘10.txt’ changed from 0755 (rwxr-xr-x) to 0722 (rwx-w--w-)
--no-preserve-root不要特别处理'/'(默认值)
--preserve-root无法在'/'上递归操作
--reference = RFILE使用RFILE的模式而不是MODE值
-R, - 递归地递归更改文件和目录
[root@server0 test1]# mkdir testchmod
[root@server0 test1]# mkdir testchmod/chmod1{2..7}
[root@server0 testchmod]# touch {1..9}.txt
[root@server0 test1]# chmod -R 777 testchmod
[root@server0 test1]# ls -al
[root@server0 test1]# cd testchmod
[root@server0 testchmod]# ls -al
total 8
drwxrwxrwx. 8 root root 4096 Mar 5 16:55 .
drwxr-xr-x. 4 root root 4096 Mar 5 16:54 ..
-rwxrwxrwx. 1 root root 0 Mar 5 16:55 1.txt
-rwxrwxrwx. 1 root root 0 Mar 5 16:55 2.txt
-rwxrwxrwx. 1 root root 0 Mar 5 16:55 3.txt
--help显示此帮助并退出
--version输出版本信息并退出
命令10
setfacl
设置文件访问控制列表
用法:setfacl [-bkndRLP] {-m | -M | -x | -X ...}文件...
-m, - modify = acl修改文件的当前ACL(必须后面接属性)
@server0 tmp]# setfacl -m u:test1:rw 12
[root@server0 tmp]# getfacl 12# file: 12
# owner: root
`# group: root
user::rwx
user:test1:rw-
group::r-x
mask::rwx
other::r-x
[root@server0 tmp]# setfacl -m g:test1:rwx 12
[root@server0 tmp]# getfacl 12# file: 12
# owner: root
`# group: root
user::rwx
user:test1:rw-
group::r-x
group:test1:rwx
mask::rwx
other::r-x
-M, - modify-file = file读取要从文件修改的ACL条目
[root@server0 tmp]# touch 12222
[root@server0 tmp]# echo u:test2:rw > 12222
[root@server0 tmp]# setfacl -M /tmp/12222 12
[root@server0 tmp]# getfacl
[root@server0 tmp]# getfacl 12`# file: 12
# owner: root
`# group: root
user::rwx
user:test1:rw-
user:test2:rw-
group::r-x
group:test1:rwx
mask::rwx
other::r-x
-x, - remove = acl从文件的ACL中删除条目
[root@server0 tmp]# setfacl -x g:test1 12 #只需要条目定义,不需要加文件读写执行属性
[root@server0 tmp]# getfacl
[root@server0 tmp]# getfacl 12# file: 12
# owner: root
`# group: root
user::rwx
user:test1:rw-
user:test2:rw-
group::r-x
mask::rwx
other::r-x
-X, - remove-file = file读取要从文件中删除的ACL条目(不需要读写执行权限)
[root@server0 tmp]# setfacl -X /tmp/12222 12
setfacl: Invalid argument in line 1 of file /tmp/12222
[root@server0 tmp]# vim /tmp/12222
[root@server0 tmp]# setfacl -X /tmp/12222 12
[root@server0 tmp]# getfacl 12
·# file: 12
·# owner: root
·# group: root
user::rwx
user:test1:rw-
group::r-x
mask::rwx
other::r-x
-b, - remove-all删除所有扩展ACL条目
[root@server0 tmp]# getfacl 12
·# file: 12
·# owner: root
·# group: root
user::rwx
user:test1:rw-
user:test3:rw-
group::r-x
group:test1:rwx
group:test3:rwx
mask::rwx
[root@server0 tmp]# setfacl -b 12
[root@server0 tmp]# getfacl 12
·# file: 12
#· owner: root
·# group: root
user::rwx
group::r-x
other::r-x
-k, - remove-default删除默认ACL
[root@server0 tmp]# setfacl -d -m u:test1:rw 12
[root@server0 tmp]# getfacl 12
#· file: 12
#· owner: root
#· group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:test1:rw-
default:group::r-x
default:mask::rwx
default:other::r-x
[root@server0 tmp]# setfacl -k 12
[root@server0 tmp]# getfacl 12
#· file: 12
#· owner: root
#· group: root
user::rwx
group::r-x
other::r-x
--set = acl设置文件的ACL,替换当前的ACL
--set-file = file读取要从文件设置的ACL条目
--mask会重新计算有效的权限掩码
-n, - no-mask不重新计算有效权限掩码
(需要查阅)
-d, - default操作适用于默认ACL
[root@server0 tmp]# setfacl -d -m u:test2:rw 12
[root@server0 tmp]# getfacl 12
·# file: 12
·# owner: root
·# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:test2:rw-
default:group::r-x
default:mask::rwx
default:other::r-x
-R, - 递归递归到子目录()
[root@server0 tmp]# mkdir -p test1/test2/test3
[root@server0 tmp]# setfacl -Rm u:test2:rw test1
[root@server0 tmp]# getfacl test1
·# file: test1
· owner: root
·# group: root
user::rwx
user:test2:rw-
group::r-x
mask::rwx
other::r-x[root@server0 tmp]# cd test1
[root@server0 test1]# getfacl -a test2
·# file: test2
·# owner: root
·# group: root
user::rwx
user:test2:rw-
group::r-x
mask::rwx
other::r-x
L, - 逻辑步行,遵循目录的符号链接。默认行为是遵循符号链接参数,并跳过子目录中遇到的符号链接。仅在与-R组合中有效。此选项不能与`--restore'混合使用。
[root@server0 tmp]# setfacl -R -L -m u:acltest1:rw test1
setfacl: test1/test2/test2use: No such file or directory
setfacl: test1/tssl/test2use: No such file or directory
[root@server0 tmp]# getfacl test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
[root@server0 tmp]# cd test1/
[root@server0 test1]# ls
10.txt 19.txt 213123.txt test2 testchmod testfor testonly tssl
[root@server0 test1]# getfacl tssl
·# file: tssl
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
-P, - 物理
物理漫步,不要遵循目录的符号链接。这也会跳过符号链接参数。仅与-R组合有效。此选项不能与`--restore'混合使用。
[root@server0 tmp]# setfacl -R -P -m u:acltest1:rw test1
[root@server0 tmp]# getfacl test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
(就这样做出来了题目,然而我也没搞懂-LP之间的区别,也没有在谷歌上找到,望有识之士帮我补充)
--restore =文件恢复ACL(与`getfacl -R'相反)
- 测试模式(不修改ACL)
-v, - version print version并退出
-h, - 帮助这个帮助文本
命令11
getfacl
getfacl 2.2.51 - 获取文件访问控制列表
用法:getfacl [-aceEsRLPtpndvh]文件...
-a, - access仅显示文件访问控制列表
[root@server0 tmp]# setfacl -d -m u:acltest2:rwx test1
[root@server0 tmp]# getfacl -a test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
-d, - default仅显示默认访问控制列表
[root@server0 tmp]# getfacl -d test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest2:rwx
group::r-x
mask::rwx
other::r-x
-c, - omom-header不显示注释标题
[root@server0 tmp]# getfacl -c test1
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:acltest2:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
[root@server0 tmp]# getfacl test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:acltest2:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
-e, - all-effective打印所有有效权利
[root@server0 tmp]# getfacl -e test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw- #effective:rw-
group::r-x #effective:r-x
mask::rwx
other::r-x
default:user::rwx
default:user:acltest2:rwx #effective:rwx
default:group::r-x #effective:r-x
default:mask::rwx
default:other::r-x
-E, - 无效打印无效权利
oot@server0 tmp]# getfacl -E test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:acltest2:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
-s, - skip-skip跳过只有基本条目的文件
[root@server0 tmp]# getfacl -s test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:acltest2:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
-R, - 递归递归到子目录
[root@server0 tmp]# getfacl -R test1
·# file: test1
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:acltest2:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
·# file: test1/test2
·# owner: root
·# group: root
user::rwx
user:acltest1:rw-
group::r-x
mask::rwx
other::r-x
-L, - 逻辑逻辑步行,遵循符号链接(意义尚且不明)
-P, - 物理步行,不要遵循符号链接
-t, - 表格使用表格输出格式
[root@server0 tmp]# getfacl -t test1
·# file: test1
USER root rwx rwx
user acltest1 rw-
user acltest2 rwx
GROUP root r-x r-x
mask rwx rwx
other r-x r-x
-n, - 数字打印数字用户/组标识符
-p, - 绝对名称不会在路径名中删除前导'/'
-v, - version print version并退出
-h, - 帮助这个帮助文本
命令12
pwd
pwd - 打印当前/工作目录的名称
概要
pwd [选项] ......
描述
打印当前工作目录的完整文件名。
-L, - 逻辑
使用环境中的PWD,即使它包含符号链接
[root@server0 test1]# ls -al tssl
lrwxrwxrwx. 1 root root 5 Mar 6 09:37 tssl -> test2
-P, - 物理
避免所有符号链接
--help显示此帮助并退出
--version
输出版本信息并退出
命令13
tree
tree- 以树状格式列出目录的内容
-------侦听选项-------
-a列出所有文件。
[root@server0 test1]# tree -a
.
├── 10.txt
├── 19.txt
├── 213123.txt
├── test2
│ ├── test123
│ ├── test2use -> test2
│ ├── test3
│ ├── test33
│ └── tssl2 -> test33
├── testchmod
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ ├── 5.txt
│ ├── 6.txt
│ ├── 7.txt
│ ├── 8.txt
│ ├── 9.txt
│ ├── chmod12
│ ├── chmod13
│ ├── chmod14
│ ├── chmod15
│ ├── chmod16
│ └── chmod17
├── testfor -> testonly
├── testonly
└── tssl -> test2
-d仅列出目录。
[root@server0 test1]# tree -d
.
├── test2
│ ├── test3
│ ├── test33
│ └── tssl2 -> test33
├── testchmod
│ ├── chmod12
│ ├── chmod13
│ ├── chmod14
│ ├── chmod15
│ ├── chmod16
│ └── chmod17
└── tssl -> test2
12 directories
-l遵循目录等符号链接。
[root@server0 test1]# tree -i
.
10.txt
19.txt
213123.txt
test2
test123
test2use -> test2
test3
test33
tssl2 -> test33
testchmod
1.txt
2.txt
3.txt
4.txt
5.txt
6.txt
7.txt
8.txt
9.txt
chmod12
chmod13
chmod14
chmod15
chmod16
chmod17
testfor -> testonly
testonly
tssl -> test2
12 directories, 16 files
-f打印每个文件的完整路径前缀。
[root@server0 test1]# tree -f
.
├── ./10.txt
├── ./19.txt
├── ./213123.txt
├── ./test2
│ ├── ./test2/test123
│ ├── ./test2/test2use -> test2
│ ├── ./test2/test3
│ ├── ./test2/test33
│ └── ./test2/tssl2 -> test33
├── ./testchmod
│ ├── ./testchmod/1.txt
│ ├── ./testchmod/2.txt
│ ├── ./testchmod/3.txt
│ ├── ./testchmod/4.txt
│ ├── ./testchmod/5.txt
│ ├── ./testchmod/6.txt
│ ├── ./testchmod/7.txt
│ ├── ./testchmod/8.txt
│ ├── ./testchmod/9.txt
│ ├── ./testchmod/chmod12
│ ├── ./testchmod/chmod13
│ ├── ./testchmod/chmod14
│ ├── ./testchmod/chmod15
│ ├── ./testchmod/chmod16
│ └── ./testchmod/chmod17
├── ./testfor -> testonly
├── ./testonly
└── ./tssl -> test2
-x仅保留当前文件系统。
-L level只降低级别目录深度。
-R当达到最大目录级别时重新运行树。
-P pattern仅列出与给定模式匹配的文件。
-I pattern不列出与给定模式匹配的文件。
--noreport在树列表末尾关闭文件/目录计数。
--charset X使用charset X进行终端/ HTML和缩进行输出。
--filelimit#不要在其中包含多于#个文件的dirs。
--timefmt
-o filename输出到文件而不是stdout。
--du打印目录大小。
[root@server0 test1]# tree --du
.
├── [ 0] 10.txt
├── [ 11] 19.txt
├── [ 0] 213123.txt
├── [ 95] test2
│ ├── [ 0] test123
│ ├── [ 5] test2use -> test2
│ ├── [ 6] test3
│ ├── [ 6] test33
│ └── [ 6] tssl2 -> test33
├── [ 4132] testchmod
│ ├── [ 0] 1.txt
│ ├── [ 0] 2.txt
│ ├── [ 0] 3.txt
│ ├── [ 0] 4.txt
│ ├── [ 0] 5.txt
│ ├── [ 0] 6.txt
│ ├── [ 0] 7.txt
│ ├── [ 0] 8.txt
│ ├── [ 0] 9.txt
│ ├── [ 6] chmod12
│ ├── [ 6] chmod13
│ ├── [ 6] chmod14
│ ├── [ 6] chmod15
│ ├── [ 6] chmod16
│ └── [ 6] chmod17
├── [ 8] testfor -> testonly
├── [ 7] testonly
└── [ 5] tssl -> test2
8354 bytes used in 12 directories, 16 files
--prune修剪输出中的空目录。
--------文件选项---------
-q将不可打印的字符打印为“?”。
-N按原样打印不可打印的字符。
-Q引用带双引号的文件名。
[root@server0 tmp]# tree -Q
.
├── "10.txt"
├── "122222.txt"
├── "1222.txt"
├── "123"
│ ├── "222.txt"
-p打印每个文件的保护。
[root@server0 tmp]# tree -p
.
├── [-rw-r--r--] 10.txt
├── [-rw-r--r--] 122222.txt
├── [-rw-r--r--] 1222.txt
├── [drwxr-xr-x] 123
│ ├── [-rw-r--r--] 222.txt
│ ├── [-rw-r--r--] 222.txt~
-u显示文件所有者或UID号。
[root@server0 tmp]# tree -u
.
├── [root ] 10.txt
├── [root ] 122222.txt
├── [root ] 1222.txt
├── [root ] 123
│ ├── [root ] 222.txt
│ ├── [root ] 222.txt~
│ ├── [root ] 223.txt23
│ ├── [root ] 225 -> 223.txt
│ ├── [root ] 226 -> /tmp/12.txt
-g显示文件组所有者或GID编号。
[root@server0 tmp]# tree -g
.
├── [root ] 10.txt
├── [root ] 122222.txt
├── [root ] 1222.txt
├── [root ] 123
│ ├── [root ] 222.txt
-s打印每个文件的大小(以字节为单位)。
[root@server0 tmp]# tree -s
.
├── [ 4] 10.txt
├── [ 0] 122222.txt
├── [ 0] 1222.txt
├── [ 4096] 123
│ ├── [ 0] 222.txt
│ ├── [ 16] 222.txt~
-h以更易读的方式打印尺寸。
[root@server0 tmp]# tree -h
.
├── [ 4] 10.txt
├── [ 0] 122222.txt
├── [ 0] 1222.txt
├── [4.0K] 123
│ ├── [ 0] 222.txt
│ ├── [ 16] 222.txt~
│ ├── [ 7] 223.txt23
--si与-h相似,但以SI单位(1000的幂)使用。
[root@server0 tmp]# tree --si
.
├── [ 4] 10.txt
├── [ 0] 122222.txt
├── [ 0] 1222.txt
├── [4.1k] 123
│ ├── [ 0] 222.txt
│ ├── [ 16] 222.txt~
│ ├── [ 7] 223.txt23
-D打印上次修改日期或(-c)状态更改。
[root@server0 tmp]# tree -D
.
├── [Feb 28 9:26] 10.txt
├── [Sep 1 2018] 122222.txt
├── [Mar 4 11:55] 1222.txt
├── [Mar 4 17:25] 123
│ ├── [Mar 4 15:08] 222.txt
│ ├── [Feb 28 18:04] 222.txt~
-F附加'/','=','*','@','|'或者按照ls -F的'>'。
--inodes打印每个文件的inode编号。
[root@server0 tmp]# tree --inodes
.
├── [20201256] 10.txt
├── [20203457] 122222.txt
├── [20203458] 1222.txt
├── [8846781] 123
│ ├── [20203460] 222.txt
│ ├── [8846783] 222.txt~
│ ├── [20203461] 223.txt23
--device打印每个文件所属的设备ID号。
[root@server0 tmp]# tree --device
.
├── [64769] 10.txt
├── [64769] 122222.txt
├── [64769] 1222.txt
├── [64769] 123
│ ├── [64769] 222.txt
│ ├── [64769] 222.txt~
│ ├── [64769] 223.txt23
-------排序选项-------
-v 按版本按字母数字排序文件。
[root@server0 tmp]# tree -v
.
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── 5.txt
├── 6.txt
-r按反向字母数字顺序对文件进行排序。
[root@server0 tmp]# tree -r
.
├── test1
│ ├── tssl -> test2
│ ├── testonly
│ ├── testfor -> testonly
│ ├── testchmod
│ │ ├── chmod17
-t按上次修改时间对文件进行排序。
[root@server0 tmp]# tree -tD
.
├── [Mar 6 17:42] systemd-private-Ch7K2O
│ └── [Mar 6 17:42] tmp
├── [Mar 6 17:42] systemd-private-K49UiR
│ └── [Mar 6 17:42] tmp
├── [Mar 6 17:41] systemd-private-RQSjJt
│ └── [Mar 6 17:41] tmp
├── [Mar 6 9:37] test1
│ ├── [Mar 6 9:40] test2
│ │ ├── [Mar 6 9:40] tssl2 -> test33
│ │ ├── [Mar 6 9:38] test33
│ │ ├── [Mar 6 9:36] test3
│ │ ├── [Mar 5 10:14] test2use -> test2
│ │ └── [Mar 5 10:13] test123
-c按上次状态更改时间对文件进行排序。
[root@server0 tmp]# tree -cD
.
├── [Mar 6 17:42] systemd-private-Ch7K2O
│ └── [Mar 6 17:42] tmp
├── [Mar 6 17:42] systemd-private-K49UiR
│ └── [Mar 6 17:42] tmp
├── [Mar 6 17:41] systemd-private-RQSjJt
│ └── [Mar 6 17:41] tmp
├── [Mar 6 10:55] test1
│ ├── [Mar 6 10:42] 10.txt
│ ├── [Mar 6 10:42] 19.txt
-U保持文件未排序。
[root@server0 tmp]# tree -U | head -n 20
.
├── systemd-private-yILolc
│ └── tmp
├── systemd-private-UpllOx
│ └── tmp
├── systemd-private-dKm1nw
│ └── tmp
├── systemd-private-2Fzohz
│ └── tmp
├── systemd-private-HJCqz6
│ └── tmp
├── systemd-private-usovJD
│ └── tmp
├── 567 -> 123
--dirsfirst列出文件前的目录(-U禁用)。
-------图形选项------
-i不要打印缩进线。
[root@server0 tmp]# tree -i | head -n 20
.
10.txt
122222.txt
1222.txt
123
222.txt
222.txt~
223.txt23
225 -> 223.txt
226 -> /tmp/12.txt
34.txt
35.txt
456
-A打印ANSI线条图形缩进线。
[root@server0 tmp]# tree -A | head -n 20
.
├── 10.txt
├── 122222.txt
├── 1222.txt
├── 123
│ ├── 222.txt
│ ├── 222.txt~
│ ├── 223.txt23
│ ├── 225 -> 223.txt
│ ├── 226 -> /tmp/12.txt
│ ├── 34.txt
│ ├── 35.txt
│ └── 456
│ └── 227.txt
-S使用ASCII图形缩进线打印。
[root@server0 tmp]# tree -S | head -n 20
.
��� 10.txt
��� 122222.txt
��� 1222.txt
��� 123
� ��� 222.txt
� ��� 222.txt~
� ��� 223.txt23
� ��� 225 -> 223.txt
� ��� 226 -> /tmp/12.txt
-n始终关闭着色(-C覆盖)。
[root@server0 tmp]# tree -n | head -n 20
.
├── 10.txt
├── 122222.txt
├── 1222.txt
├── 123
│ ├── 222.txt
│ ├── 222.txt~
│ ├── 223.txt23
│ ├── 225 -> 223.txt
-C始终打开着色。(会显示文件特有颜色)
[root@server0 tmp]# tree -C | head -n 20
.
├── 10.txt
├── 122222.txt
├── 1222.txt
├── 123
│ ├── 222.txt
│ ├── 222.txt~
│ ├── 223.txt23
│ ├── 225 -> 223.txt
│ ├── 226 -> /tmp/12.txt
│ ├── 34.txt
│ ├── 35.txt
│ └── 456
------- XML / HTML选项-------
-X打印出树的XML表示形式。
[root@server0 tmp]# tree -X | head -n 20
-H baseHREF使用baseHREF作为顶级目录打印出HTML格式。(结果不明)
-T string用字符串替换默认的HTML标题和H1标题。(结果不明)
--nolinks关闭HTML输出中的超链接。
----其他选择----
--version打印版本并退出。
--help打印用法和此帮助消息并退出。
命令14
find
find - 搜索目录层次结构中的文件
选项
-H,-L和-P选项控制符号链接的处理。
后面的命令行参数被视为文件的名称
或者要检查的目录,直到开始的第一个参数
用- '或参数
('或`!'。那个参数和以下任何一个
参数被认为是描述内容的表达式
搜索。如果没有给出路径,则使用当前目录。
如果没有给出表达式,则使用表达式-print(但是你
不管怎样,应该考虑使用-print0。
本手册页面讨论表达式列表中的“选项”。
这些选项控制查找的行为,但是直接指定
在最后一个路径名之后。五个“真实”选项-H,-L,-P,-D
和-O必须出现在第一个路径名之前(如果有的话)。一双
dash - 也可用于表示任何剩余的参数不是
选项(尽管确保所有起点都以`./'开头
如果在start列表中使用通配符,则“/”通常更安全
点)。
选项 OPTIONS
所有的选项都总是返回真值,它们总会被执行,除非放在表达式中执行不到的地方。
因此,清楚起见,最好把它们放在表达式的开头部分。
-daystart
从当日起始时开始而不是从24小时之前,计算时间(for -amin, -atime,-cmin, -ctime, -mmin, and -mtime)。
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
[root@test tmp]# find /tmp -ctime -1 | head -n 10
/tmp
/tmp/.X11-unix
/tmp/.X11-unix/X0
/tmp/.font-unix
/tmp/.ICE-unix
/tmp/.ICE-unix/1495
/tmp/.ICE-unix/9789
/tmp/.esd-0
/tmp/.esd-0/socket
/tmp/systemd-private-0be8f39d207d487bb238e5e7c01c80c1-chronyd.service-eOxRDd
[root@test tmp]# find /tmp -ctime +1 | head -n 10
/tmp/.Test-unix
/tmp/.XIM-unix
/tmp/.ICE-unix/1486
/tmp/tracker-extract-files.0
/tmp/test111
/tmp/test111/test222
/tmp/test111/test222/123.txt
-depth 先处理目录的内容再处理目录本身。(加速搜素内容)
[root@test tmp]# find /tmp -depth | head -n 10
/tmp/.Test-unix
/tmp/.X11-unix/X0
/tmp/.X11-unix
/tmp/.XIM-unix
/tmp/.font-unix
/tmp/.ICE-unix/1486
/tmp/.ICE-unix/1495
/tmp/.ICE-unix/9789
/tmp/.ICE-unix
/tmp/.esd-0/socket
-follow
不检索符号链接。隐含了 -noleaf。
-help, --help
列出 find 的命令行用法的概要,然后退出。
-maxdepth levels
进入命令行参数指定的目录下层目录时,最深不超过levels(一个非负整数) 层。`-maxdepth 0' 意味着只在命令行参数指定的目录中执行测试和动作。
[root@test tmp]# find /tmp -maxdepth 1 -name "1"
/tmp/12.txt
/tmp/13.txt
/tmp/14.txt
/tmp/15.txt
/tmp/16.txt
/tmp/17.txt
/tmp/18.txt
/tmp/12sl
/tmp/13sl
/tmp/16hl
/tmp/19.txt
/tmp/17hl
[root@test tmp]# find /tmp -maxdepth 2 -name "1"
/tmp/.ICE-unix/1486
/tmp/.ICE-unix/1495
/tmp/12.txt
-mindepth levels
不在levels(一个非负整数)层之内执行任何测试和动作。`-mindepth 1'意 味着处理所有的文件,除了命令行参数指定的目录中的文件。
[root@test tmp]# find /tmp -mindepth 2 -name "1"
/tmp/.ICE-unix/1486
/tmp/.ICE-unix/1495
/tmp/test1/12.txt
/tmp/test1/13.txt
/tmp/test1/14.txt
/tmp/test1/15.txt
/tmp/test1/16.txt
/tmp/test1/17.txt
/tmp/test1/18.txt
/tmp/test1/19.txt
/tmp/test111/test222/123.txt
[root@test tmp]# find /tmp -mindepth 3 -name "1"
/tmp/test111/test222/123.txt
-mount 不进入处于其它文件系统之上的目录。可以用-xdev代替,从而和一些其他版本的 find 兼容。
[root@test newdev]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
fd0
sda
├─sda1 xfs 93e6872d-44bc-42d4-880b-3937848b02cf /boot
├─sda2 LVM2_member dcdEeX-Z0yQ-YopF-0eWd-hK6c-46DB-ENNU24
│ ├─centos-root xfs 5a5aa0af-6042-4dfa-b92c-3a59931bc06e /
│ └─centos-swap swap e3b119ad-3c1d-46a5-83e1-af6ec9f72c9f [SWAP]
└─sda3 LVM2_member ReqJLX-uSgG-5Sr7-pCb0-QTOG-66nB-diNEIe
└─vgnew1-lvnew1 btrfs 001540a0-ce56-4584-b406-e47f3ad4f22a /newdev
[root@test newdev]# cd /newdev
[root@test newdev]# ls
1.txt
[root@test newdev]# find / -mount -name "1.txt"
/etc/1.txt
/tmp/1.txt
[root@test newdev]# find / -name "1.txt"
/etc/1.txt
/tmp/1.txt
/newdev/1.txt
(由于find命令会搜素不同系统分区,如果只想搜素find命令所在分区,就加入-mount指令,可以减少不必要的搜素)
-noleaf
不为“目录中子目录数量比硬连接数少2”这种假设做优化。这个选项在搜索那些不遵循UNIX文件系统链接约定的文件系统时用,比如CDROM,MS-DOS文件系统或AFS卷的加载点。在普通的UNIX文件系统中,每个目录至少有两个硬连接,它的名字和它 的'.'条目。另外,它的子目录(假如有)还会各有一个 '..' 链接到它。在find检索一个目录时,发现子目录数比它的连接数少二时,它就知道目录中的其他条目并非目录(而是目录树中的叶(`leaf')节点)。除非需要检索的是这个叶节点,否则没必要去处理它。这样可以带来很大的搜索速度提升。
-version, --version
打印find的版本号然后退出。
-xdev 不进入处于其他文件系统之上的目录。
测试 TESTS
数字参数可以这样给出:
+n 是比 n 大,
-n 是比 n 小,
n 正好是 n 。
-amin n
对文件的最近一次访问是在 n 分钟之前。
[root@server0 tmp]# find /tmp -amin 1
/tmp
/tmp/systemd-private-ecKHdn
-anewer file
对文件的最近一次访问比 file 修改时间要晚。如果命令行中 -follow 在 -anewer 之前,(也只有在这种情况下) -anewer 会受 -follow 的影响。
[root@server0 tmp]# touch 2.txt
[root@server0 tmp]# touch 3.txt
[root@server0 tmp]# find /tmp -anewer 2.txt
/tmp/3.txt
-atime n
对文件的最近一次访问是在 n*24 小时之前。(最近一次文件访问在多少日之前)
[root@server0 tmp]# find /tmp -atime 1
/tmp/.ICE-unix/1129
/tmp/test1/12.txt
[root@server0 tmp]# find /tmp -atime 2
/tmp/.ICE-unix/1286
/tmp/.ICE-unix/1308
/tmp/12222
-cmin n
对文件状态的最近一次修改是在 n 分钟之前。
[root@server0 tmp]# echo 222 >> 2.txt
[root@server0 tmp]# find /tmp -cmin 1
/tmp/2H
/tmp/2.txt
-cnewer file
对文件状态的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -cnewer 之前,(也只有在这种情况下) -cnewer 会受 -follow 的影响。
[root@server0 tmp]# echo 222 >> 2.txt
[root@server0 tmp]# find /tmp -cnewer 3.txt
/tmp/2H
/tmp/2.txt
-ctime n
对文件状态的最近一次修改是在 n*24 小时之前。
[root@server0 tmp]# find /tmp -ctime 0
/tmp
/tmp/3.txt
[root@server0 tmp]# stat 3.txt
File: ‘3.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 20198315 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-08 13:39:26.700552840 +0800
Modify: 2019-03-08 13:39:26.700552840 +0800
Change: 2019-03-08 13:39:26.700552840 +0800
-empty 文件是空的普通文件或者空目录。
[root@server0 tmp]# find /tmp -empty
/tmp/.XIM-unix
/tmp/.font-unix
/tmp/.Test-unix
/tmp/systemd-private-ecKHdn/tmp
/tmp/systemd-private-lAXhGU/tmp
/tmp/systemd-private-I7Y660/tmp
/tmp/systemd-private-KPPr9P/tmp
/tmp/13H
-false 总是false。
-fstype type
文件处于 type 类型的文件系统之上。有效的文件系统类型在不同版本的Unix中是不同的;一些Unix中的不完全的文件系统类型列表是这样:ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K.
你可以用 -printf 加上 %F 指令来查看你的文件系统的类型。
-gid n 文件的数字形式的组ID是 n。
[root@test tmp]# chgrp test2 12.txt
[root@test tmp]# chgrp test2 13.txt
[root@test tmp]# find / -gid 1507
find: ‘/proc/27265/task/27265/fd/5’: 没有那个文件或目录
find: ‘/proc/27265/task/27265/fdinfo/5’: 没有那个文件或目录
find: ‘/proc/27265/fd/6’: 没有那个文件或目录
find: ‘/proc/27265/fdinfo/6’: 没有那个文件或目录
/tmp/12.txt
/tmp/13.txt
/home/test2
[root@server0 tmp]# chgrp 1001 1.txt
[root@server0 tmp]# find /tmp -group 1001
/tmp/1.txt
-group gname
文件属于 gname (也允许使用数字形式的组ID).
[root@server0 tmp]# chgrp 1001 1.txt
[root@server0 tmp]# find /tmp -group test1
/tmp/1.txt
-ilname pattern
和 -lname 类似,但是匹配时是不区分大小写的。
-iname pattern
和 -name 类似,但是匹配时是不区分大小写的。例如,`fo*' and `F??' 模式与文件名 `Foo', `FOO', `foo', `fOo' 等等相匹配。
[root@test tmp]# find /tmp -iname test1
/tmp/test1
/tmp/Test1
-inum n
文件的 i 结点数是 n。(按inode号来说)
[root@test tmp]# ls -i | grep Test1
85 Test1
[root@test tmp]# find /tmp -inum 85
/tmp/Test1
-ipath pattern
和 -path 类似,但是匹配时是不区分大小写的。
[root@test tmp]# find /tmp -ipath /tmp/test1
/tmp/test1
/tmp/Test1
(需要绝对路径)
-iregex pattern
和 -regex 类似, 但是匹配时是不区分大小写的。
[root@test tmp]# touch /tmp/81397018-b84a-11e0-9d2a-001b77dc0bed.jpg
[root@test tmp]# find /tmp -regextype sed -regex ".*/[a-f0-9-]{36}.jpg"
/tmp/81397018-b84a-11e0-9d2a-001b77dc0bed.jpg
(#搬运自
https://stackoverflow.com/questions/6844785/how-to-use-regex-with-find-command
-links n
文件有 n 个链接。
touch 16.txt
ln 16.txt 16hl1
ln 16.txt 16hl2
ln 16.txt 16hl3
[root@test tmp]# find /tmp -links 5
/tmp/16hl3
/tmp/16.txt
/tmp/16hl
/tmp/16hl1
/tmp/16hl2
-lname pattern
文件是一个与pattern 匹配的符号链接。元字符不会对`/' 或 `.' 做特殊处理。
-mmin n
对文件数据的最近一次修改是在 n 分钟之前。
[root@test tmp]# echo 121212 >> 12.txt
[root@test tmp]# find /tmp -mmin 1
/tmp/12.txt
-mtime n
对文件数据的最近一次修改是在 n*24 小时之前。
[root@test tmp]# find /tmp -mtime 7
[root@test tmp]# find /tmp -mtime 6
/tmp/.ICE-unix/1495
/tmp/.ICE-unix/9789
-name pattern
基本的文件名(将路径去掉了前面的目录)与shell模式pattern相匹配。元字符(`*', `?', 还有`[]' ) 不会匹配文件名开头的`.' 。使用 -prune 来略过一个目录及其中的文件。查看 -path
的描述中的范例。
[root@test tmp]# find /tmp -name 12.txt
/tmp/12.txt
/tmp/test1/12.txt
-newer file
对文件的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -newer 之前,(也只有在这种情况下) -newer 会受 -follow 的影响。
[root@test tmp]# echo 121121212 >> 12.txt
[root@test tmp]# echo 121121212 >> 13.txt
[root@test tmp]# find /tmp -newer 12.txt
/tmp/13.txt
-nouser
没有符合文件的数字形式的用户ID的用户。
-nogroup
没有符合文件的数字形式的组ID的组。
-path pattern
文件名与shell模式pattern相匹配。元字符不会对/' 或
.' 做特殊处理。因此,例如:
find . -path './sr*sc'
如果存在 './src/misc' 的话,会将它打印出来。想要忽略一个完整的目录树,应当使用-prune 而不是检查目录树中所有的文件。例如:要跳过 'src/emacs'
目录和其中所有的文件和子目录,把其他找到的文件打印出来,应当这样:
find . -path './src/emacs' -prune -o -print
-perm mode
文件的权限位恰好是 mode (八进制或符号)。 Symbolic modes use mode 0 as a point of departure.
[root@test tmp]# mkdir test16
[root@test tmp]# chmod 770 test16
[root@test tmp]# find /tmp -perm 770
/tmp/test16
-perm -mode(含有此设定的所有全限值)
所有的权限位 mode 都被设置了的文件。
[root@test test16]# touch {1..6}.txt
[root@test test16]# chmod 750 1.txt
[root@test test16]# chmod 777 2.txt
[root@test test16]# chmod 772 3.txt
[root@test test16]# chmod 774 4.txt
[root@test test16]# chmod 771 5.txt
[root@test test16]# find /tmp/test16 -perm -007
/tmp/test16/2.txt
[root@test test16]# find /tmp/test16 -perm -002
/tmp/test16/2.txt
/tmp/test16/3.txt
[root@test test16]# find /tmp/test16 -perm -004
/tmp/test16/2.txt
/tmp/test16/4.txt
/tmp/test16/6.txt
-perm +mode
任何权限位 mode 被设置了的文件。
[root@test tmp]# find /tmp -perm +007
find: warning: you are using -perm +MODE'. The interpretation of
-perm +omode' changed in findutils-4.5.11. The syntax -perm +omode' was removed in findutils-4.5.12, in favour of
-perm /omode'.
-regex pattern
文件名与正则表达式 pattern 匹配。这是对整个路径的匹配,不是搜索文件。例如,要匹配名为`./fubar3' 的文件,可以使用正则表达式 `.*bar.' 或者 `.*b.*3',但是不能用`b.*r3'。
-size n[bckw]
文件使用了 n 单位个存储单元。默认的单位是512字节的块,也可以用n后面加上 `b' 来指定这个值。其他的单位是字节,如果在 n 后面加上 `c' ;千字节(kB),如果在 n 后面加上`k'
;两字节的字,如果在 n 后面加上 `w' 。大小不会计入 indirect blocks,但是会计入没有真正分配空间的疏松文件中的块。
[root@test etc]# find /etc -size +8k -size -10k(大于8k 小于10k)
/etc/pki/nssdb/cert9.db
/etc/grub.d/00_header
/etc/dbus-1/system.d/org.freedesktop.login1.conf
/etc/xdg/autostart/gnome-keyring-pkcs11.desktop
-true 总是true。
-type c
文件是 c 类型的。类型可取值如下:
b 特殊块文件(缓冲的)
[root@test dev]# find / -type b
/dev/dm-2
/dev/dm-1
/dev/dm-0
c 特殊字符文件(不缓冲)
[root@test dev]# find / -type c
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
d 目录
[root@test dev]# find /tmp/test1 -type d
/tmp/test1
/tmp/test1/test12
p 命名管道 (FIFO)
[root@test dev]# find / -type p | head -n 10
/run/dmeventd-client
/run/dmeventd-server
/run/systemd/inhibit/9.ref
/run/systemd/inhibit/7.ref
/run/systemd/inhibit/6.ref
/run/systemd/inhibit/5.ref
/run/systemd/inhibit/4.ref
/run/systemd/inhibit/2.ref
/run/systemd/inhibit/1.ref
/run/systemd/sessions/2.ref
f 普通文件
[root@test dev]# find / -type f | head -n 10
/boot/efi/EFI/centos/BOOT.CSV
/boot/efi/EFI/centos/BOOTX64.CSV
/boot/efi/EFI/centos/MokManager.efi
/boot/efi/EFI/centos/mmx64.efi
/boot/efi/EFI/centos/shim.efi
/boot/efi/EFI/centos/shimx64-centos.efi
/boot/efi/EFI/centos/shimx64.efi
/boot/efi/EFI/centos/fwupia32.efi
/boot/efi/EFI/centos/fwupx64.efi
/boot/efi/EFI/BOOT/BOOTX64.EFI
l 符号链接
[root@test dev]# find /tmp -type l | head -n 10
/tmp/12sl
/tmp/13sl
/tmp/tss3sl
/tmp/test3sl
/tmp/tss33sl
s 套接字
[root@test dev]# find / -type s | head -n 5
/dev/log
/run/mcelog-client
/run/abrt/abrt.socket
/run/NetworkManager/private-dhcp
/run/chrony/chronyd.sock
D 门 (Solaris 特有)
-uid n 文件的数字形式的用户ID是 n 。
test1:x:1506:1506::/home/test1:/bin/bash
test2:x:1507:1507::/home/test2:/bin/bash
saned:x:375:371:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
[root@test dev]# find / -uid 1506 | head -n 10
find: ‘/proc/21468/task/21468/fd/5’: 没有那个文件或目录
find: ‘/proc/21468/task/21468/fdinfo/5’: 没有那个文件或目录
find: ‘/proc/21468/fd/6’: 没有那个文件或目录
find: ‘/proc/21468/fdinfo/6’: 没有那个文件或目录
/var/spool/mail/test1
/home/test1
-used n
文件最后一次存取是在最后一次修改它的状态的 n 天之后。
[root@test dev]# find /tmp -used 1
/tmp/.X11-unix/X0
/tmp/.ICE-unix/1486
/tmp/.ICE-unix/1495
-user uname
文件的所有者是 uname (也可以使用数字形式的用户ID).
[root@test dev]# find /tmp -user test1
/tmp/1111.txt
/tmp/222
-xtype c
和 -type 相同,除非文件是一个符号链接。对于符号链接:如果没有给出 -follow ,如果文件是一个指向 c 类型文件的链接,那么返回true;如果给出了 -follow ,如果 c 是 `l' 那么返回true。换句话说,对于符号链接,-xtype 检查那些 -type 不检查的文件。
动作 ACTIONS
-exec command ;
执行 command;如果命令返回状态值0,那么 exec 返回true。所有 find 其余的命令行参数将作为提供给命令的参数,直到遇到一个由 ;' 组成的参数为止。命令的参数中,字符串
{}' 将以正在处理的文件名替换。所有的 {}' 都会被替换,不仅是在单独的一个参数中。有些版本的 find 不是这样做的。这些参数可能需要用
\' 来escape 或者用括号括住,防止它们被shell展开。命令是从起始目录执行的。
[root@test tmp]# touch 1.txt
[root@test tmp]# touch 2.txt
[root@test tmp]# find /tmp -type f -name "?.txt" -exec rm -rf {} \; #建两个txt文件
并删除它
[root@test tmp]# ls
1111.txt
-fls file
返回true;类似 -ls 但是像 -fprint 那样写入 file。
-fprint file
返回true;将文件全名打印到文件 file 中。如果运行 find 时 file 不存在,那么它将被创建。如果它存在,它将被覆盖。文件名``/dev/stdout'' 和``/dev/stderr''会作特殊处理;它们分别指的是标准输出和标准错误输出。
-fprint0 file
返回true;类似 -print0 但是像 -fprint 那样写入 file。
-fprintf file format
返回true;类似 -printf 但是像 -fprint 那样写入 file。
-ok command ;
类似 -exec 但是会先向用户询问 (在标准输入); 如果回应不是以 `y' 或 `Y' 起始则不会运行 command 而是返回false。
-print 返回true;在标准输出打印文件全名,然后是一个换行符。(打印全路径)
[root@test tmp]# find /tmp -type d -perm 755 -print -exec chmod 644 {} \;
-print0
返回true;在标准输出打印文件全名,然后是一个null字符。这样可以使得处理 find 的输出的程序可以正确地理解带有换行符的文件名。
[root@test tmp]# find /tmp -print0 #不换行输出所有find内容的结果
/tmp/tmp/.Test-unix/tmp/.X11-unix/tmp/.X11-unix/X0/tmp/.XIM-unix/tmp/.font-unix/tmp/.ICE-unix/tmp/.ICE-unix/1486/tmp/.ICE-unix/1495/
-printf format
返回true;在标准输出打印 format , 解释 `\' escape 还有 `%' 指令。字段宽度和精度可以像C函数 `printf' 那样来指定。与 -print 不同的是, -printf 在字符串末端不会添加一个新行。可用的escape 和指令如下:
\a 警告铃声
\b 回退
\c 立即停止以当前格式输出,刷新输出设备。
\f 表格结束
\n 新行
\r 回车
\t 水平tab
\v 竖直tab
\\ 输出自身`\'
\NNN ASCII编码是NNN(八进制)的字符
在一个 `\' 字符后面使用任何其他字符会被作为普通的字符,因此它们都会被打印出来。
%% 输出自身`%'
%a 文件最后一次存取的时间。格式是C函数 `ctime' 返回值的格式。
[root@test tmp]# find /tmp -printf '%s %p\n' | head -n 10
4096 /tmp
6 /tmp/.Test-unix
16 /tmp/.X11-unix
0 /tmp/.X11-unix/X0
6 /tmp/.XIM-unix
6 /tmp/.font-unix
90 /tmp/.ICE-unix
%Ak 文件最后一次存取的时间。格式以 k 指定,可以是 `@' 或者是C函数 `strftime' 的指令格式。下面列出了 k 可用的值;有一些并不是在所有系统上都可用,因为不同系统中 `strftime'也不同。
@ 从 Jan. 1, 1970, 00:00 GMT 起的秒数
时间字段:
H 小时 (00..23)
I 小时 (01..12)
k 小时 ( 0..23)
l 小时 ( 1..12)
M 分钟 (00..59)
p 本地的 AM 或者 PM
r 12小时格式的时间 (hh:mm:ss [AP]M)
S 秒 (00..61)
T 24小时格式的时间 (hh:mm:ss)
X 本地的时间表示方法 (H:M:S)
Z 时区(例如,EDT),如果不能决定时区就是空
日期字段:
a 本地一星期中每天的名称的缩写(Sun..Sat)
A 本地一星期中每天的全名,可变长度 (Sunday..Saturday)
b 本地每月的名称的缩写 (Jan..Dec)
B 本地每月的全名,可变长度 (January..December)
c 本地的日期和时间表示 (Sat Nov 04 12:02:33 EST 1989)
d 一个月当中的日子 (01..31)
D 日期 (mm/dd/yy)
h 与 b 相同
j 一年当中的日子 (001..366)
m 月份 (01..12)
U 以星期日作为每周起始,一年当中的星期 (00..53)
w 一星期当中的日子 (0..6)
W 以星期一当作每周起始,一年当中的星期 (00..53)
x 本地的日期表示 (mm/dd/yy)
y 年份的最后两位 (00..99)
Y 年份 (1970...)
[root@test tmp]# find /tmp -printf '%s %p %AT\n' | head -n 10
8192 /tmp 18:27:08.5452416420
6 /tmp/.Test-unix 17:29:44.9237984530
16 /tmp/.X11-unix 09:57:17.5413560240
0 /tmp/.X11-unix/X0 09:45:48.0877671560
6 /tmp/.XIM-unix 17:29:44.9248011950
6 /tmp/.font-unix 09:57:17.5413560240
90 /tmp/.ICE-unix 09:57:17.5413560240
运算符 OPERATORS
以优先级高低顺序排列:
( expr )
强制为优先
! expr 如果 expr 是false则返回true
-not expr
与 ! expr 相同
expr1 expr2
与 (隐含的默认运算符);如果 expr1 为false则不会执行 expr2
[root@test tmp]# find /tmp -size -1b -size +10M -name ".txt"
[root@test tmp]# find /tmp -size +1b -size -10M -name ".txt"
/tmp/test111/test222/123.txt
expr1 -a expr2
与 expr1 expr2 相同
expr1 -and expr2
与 expr1 expr2 相同
expr1 -o expr2
或;如果 expr1 为true 则不会执行 expr2(加了-o就会显示所有表达式各自执行出来可以显示的结果)
[root@test tmp]# find /tmp -size -1b -o -size +10M -name "*.txt"
/tmp/.X11-unix/X0
/tmp/.ICE-unix/1486
/tmp/.ICE-unix/1495
expr1 -or expr2
与 expr1 -o expr2 相同
expr1 , expr2
列表;expr1 和 expr2 都会被执行。expr1 的值被忽略,列表的值是 expr2的值
命令15
cat
cat - 连接文件并在标准输出上打印
概要
猫[选项] ... [文件] ...
描述
将FILE(或标准输入)连接到标准输出。
-A, - show-all
相当于-vET
[root@test tmp]# cat -A 1.txt
ewqeqweqwe$
qweqwdasdasd$
sadasdasdas$
xxcsasdasdas$
-b, - number-nonblank
number非空输出行,覆盖-n
[root@test tmp]# cat -b 1.txt
1 ewqeqweqwe
2 qweqwdasdasd
3 sadasdasdas
4 xxcsasdasdas
5 xczx
6 czxc
7 zx
8 czx
9 czx
10 c
11 zxc
12 qweqwewq
-e相当于-vE
[root@test tmp]# cat -e 1.txt
ewqeqweqwe$
qweqwdasdasd$
sadasdasdas$
xxcsasdasdas$
xczx$
czxc$
zx$
czx$
czx$
c$
zxc$
$
$
$
$
qweqwewq$
-E, - show-ends
在每行末尾显示$
[root@test tmp]# cat -E 1.txt
ewqeqweqwe$
qweqwdasdasd$
sadasdasdas$
xxcsasdasdas$
xczx$
czxc$
zx$
czx$
czx$
c$
zxc$
$
$
$
$
qweqwewq$
-t相当于-vT
[root@test tmp]# cat -t 1.txt
ewqeqweqwe
qweqwdasdasd
sadasdasdas
xxcsasdasdas
xczx
czxc
zx
czx
czx
c
zxc
qweqwewq
-T, - show-tabs
将TAB字符显示为^ I
-u(忽略)
-v, - show-nonprinting
使用^和M-表示法,LFD和TAB除外
--help显示此帮助并退出
--vision
输出版本信息并退出
如果没有FILE,或者FILE是 - ,则读取标准输入。
命令16
dd
dd - 转换和拷贝文件
描述
当进行非强制的转换的时候,使用指定的输入和输出块大小拷贝文件
(默认是从标准输入到标准输出。)
它每次从输入读取指定大小的一个块(默认是512字节)。如果使用bs=bytes选项,并且没有转换,除了指定sync, noerror,或notrunc之外,那么dd将把全部读到的数据(可以比请求读的少)写到独立的输出块去。
这个输出块的长度和读到的数据完全一样,除非指定使用sync(同步)转换,那样的话,数据结尾处将追加NUL字符(或空格,见下)。
其他情况下,输入的时候每次读一个块,然后处理,并将输出结果收集起来,最后写到指定大小的数据块中去。最终的输出块可能会比指定的大小短一些。
数字值选项(以字节或块为单位)后面可以跟一个乘数:
k=1024,b=512,w=2,c=1(w和c是GNU扩展语法。最好别使用w,因为在system V中,它表示2,在4.2 BSD中,它表示4)。两个或更多的数值表达式可以通过“x”乘起来。GEU fileutils 4.0并且允许在数据块大小的叙述中使用
下列乘法后缀(用bs=,cbs=,obs=):M=1048576,G=1073741824,同理可得T,P,E,Z,Y。D后缀表示数值是以十进制表示的:kD=1000,MD=1000000,GD=1000000000等等。(注意,在ls、df、du命令中,M等标记的大小是由环境变量确定的,而在DD中,它的值是固定的。)
选项
if=file
从 file 中读而不是标准输入。
of=file
写到 file 里去而不是标准输出。除非指定 conv=notrunc ,否则, dd 将把file 截为O字节(或由 seek= 选项指定的大小)
例1,备份整个硬盘
dd if = /dev/sda of = /dev/sdb
例2,将/dev/sda全盘数据备份到指定路径的image文件
dd if=/dev/sda of=/path/to/image
dd if = /dev/ssda of = ~/sdadisk.img
例3,将备份镜像文件恢复到指定盘
dd if=/path/to/image of=/dev/sda
dd if = sdadisk.img of = /dev/sdb
例4,备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
dd if=/dev/hdb | gzip > /root/image.gz
例5,将压缩的备份文件恢复到指定盘
gzip -dc /root/image.gz | dd of=/dev/
ibs=bytes
一次读 bytes 字节。默认是512。
[root@test tmp]# dd if=/dev/zero of=123456.txt ibs=1024 count=1
记录了1+0 的读入
记录了2+0 的写出
1024字节(1.0 kB)已复制,0.000514843 秒,2.0 MB/秒
obs=bytes
一次写 bytes 字节。默认是512。
[root@test tmp]# dd if=/dev/zero of=123456.txt obs=1024 count=1
记录了1+0 的读入
记录了0+1 的写出
512字节(512 B)已复制,0.000800044 秒,640 kB/秒
bs=bytes
一次读和写 bytes 字节。这将覆盖 ibs 和 obs 设定的值(并且,设定 bs不等于同时将 ibs 和 obs 设为同一个值,至少在 只使用 sync, noerror or notrunc 转换时是这样的。因为bs规定,每个输入块都应作为单独的数据块拷贝到输出,而不把较短的块组合到一起)。
例6,备份磁盘开始的512个字节大小的MBR信息到指定文件:
dd if=/dev/sda of=/root/image count=1 bs=512
[root@test tmp]# dd if=/dev/zero of=123456.txt bs=1024 count=1
记录了1+0 的读入
记录了1+0 的写出
1024字节(1.0 kB)已复制,0.000682695 秒,1.5 MB/秒
cbs=bytes
为 block 转换和 unblock 转换指定转换块的大小。
[root@test tmp]# dd if=/dev/zero of=123456.txt cbs=1024 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000819904 秒,624 kB/秒
skip=blocks
在拷贝之前,跳过输入文件的前 blocks 块,每块大小为 ibs-byte 字节。
[root@test tmp]# dd if=/dev/zero of=123456.txt skip=1024 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000545457 秒,939 kB/秒
seek=blocks
在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节。
[root@test tmp]# dd if=/dev/zero of=123456.txt seek=1024 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000356572 秒,1.4 MB/秒
count=blocks
只拷贝输入文件的前 blocks 块(每块的大小为 ibs-byte字节),而不是全部内容,直到文件末尾。(复制的块的数量)
[root@test tmp]# dd if=/dev/zero of=123456.txt bs=1024 count=3
记录了3+0 的读入
记录了3+0 的写出
3072字节(3.1 kB)已复制,0.000492789 秒,6.2 MB/秒
[root@test tmp]# dd if=/dev/zero of=123456.txt bs=1024 count=4
记录了4+0 的读入
记录了4+0 的写出
4096字节(4.1 kB)已复制,0.000545623 秒,7.5 MB/秒
[root@test tmp]# dd if=/dev/zero of=123456.txt bs=1024 count=10
记录了10+0 的读入
记录了10+0 的写出
10240字节(10 kB)已复制,0.000606515 秒,16.9 MB/秒
conv=转换"[,"转换"]..."
将文件按 转换 参数指定的方式转换(在“,”两边没有空格)。
转换方式包括:
ascii 将EBCDIC转换成ascii。
ebcdic 将ascii转换成ebcdic。
ibm 将ascii转换成alternative ebcdic。
block 每一行输入,无论长短,输出都是 cbs 字节,并且其中的“换行”(NEW‐LINE,即c中的'0)用 空格替换。如有必要,行尾会填充空格。
unblock
用“换行”替换每个输入块( cbs 字节大小)末尾的空格。
lcase 将大写字母转换成小写。
ucase 将小写字母转换成大写。
swab 交换每对输入字节。如果读入的字节数是奇数,最后
一个字节只是简单的复制到输出(因为没有能跟它交换的
字节了)(POSIX 1003.26,PASC翻译1003.2 3号和4号)。
noerror
发生读错误时,继续进行。
dd if = /dev/sda of = /dev/sdb conv=noerror, sync
notrunc
不截断输出文件。
sync 用0填充到每个输入块的末尾,使其大小为 ibs 字节。
dd if = /dev/sda of = /dev/sdb conv=noerror, sync
命令17
stat
stat - 打印信息节点(inode)内容
[root@test tmp]# stat 1.txt
文件:"1.txt"
大小:99 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:8388674 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2019-03-15 11:02:00.154094204 +0800
最近更改:2019-03-15 11:01:57.901921274 +0800
最近改动:2019-03-15 11:01:57.901921274 +0800
创建时间:-
命令18
scp
scp — 安全复制(远程文件复制程序)
命令参数:
-1 强制scp命令使用协议ssh1 (两边协议需要一致)
[root@server0 tmp]# scp -1 /tmp/1.txt root@desktop0:/tmp
Protocol major versions differ: 1 vs. 2
lost connection
-2 强制scp命令使用协议ssh2
[root@server0 tmp]# scp -2 /tmp/1.txt root@desktop0:/tmp
root@desktop0's password:
1.txt 100% 0 0.0KB/s 00:00
-4 强制scp命令只使用IPv4寻址
默认就是4
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
[root@server0 tmp]# scp -r -C /tmp/test1 root@desktop0:/tmp
root@desktop0's password:
123.txt 100% 0 0.0KB/s 00:00
1.txt 100% 0 0.0KB/s 00:00
2.txt 100% 0 0.0KB/s 00:00
3.txt 100% 0 0.0KB/s 00:00
-p 保留原文件的修改时间,访问时间和访问权限。
[root@desktop0 test3]# stat 123.txt
File: ‘123.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 20201539 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-16 17:36:15.434797243 +0800
Modify: 2019-03-16 17:38:30.679797243 +0800
Change: 2019-03-16 17:38:30.679797243 +0800
Birth: -
[root@server0 tmp]# scp -r -p /tmp/test1 root@desktop0:/tmp
123.txt 100% 0 0.0KB/s 00:00
[root@server0 test3]# stat 123.txt
File: ‘123.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 1566795 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-16 17:13:27.509389615 +0800
Modify: 2019-03-16 17:13:27.509389615 +0800
Change: 2019-03-16 17:13:27.509389615 +0800
Birth: -
[root@server0 test3]# scp -r -p /tmp/test1 root@desktop0:/tmp
root@desktop0's password:
123.txt 100% 0 0.0KB/s 00:00
[root@desktop0 test3]# stat 123.txt
File: ‘123.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 27915005 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-03-16 17:13:27.000000000 +0800
Modify: 2019-03-16 17:13:27.000000000 +0800
Change: 2019-03-16 17:42:22.466797243 +0800
Birth: -
-q 不显示传输进度条。
[root@server0 test3]# scp -r -q /tmp/test1 root@desktop0:/tmp
root@desktop0's password:
[root@server0 test3]#
-r 递归复制整个目录。
[root@server0 tmp]# mkdir -p /tmp/test1/test2/test3
[root@server0 tmp]# touch /tmp/test1/test2/test3/123.txt
[root@server0 tmp]# scp -r /tmp/test1 root@desktop0:/tmp
root@desktop0's password:
123.txt 100% 0 0.0KB/s 00:00
[root@desktop0 test1]# tree
.
├── test2
│ └── test3
│ └── 123.txt
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
[root@server0 tmp]# scp -rv /tmp/test1 root@desktop0:/tmp
Executing: program /usr/bin/ssh host desktop0, user root, command scp -v -r -t /tmp
OpenSSH_6.4, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 51: Applying options for *
debug1: Connecting to desktop0 [172.25.0.10] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
[root@server0 tmp]# scp -r -l 10 /tmp/test1 root@desktop0:/tmp
root@desktop0's password:
Permission denied, please try again.
root@desktop0's password:
123.txt 100% 0 0.0KB/s 00:00
1.txt 100% 0 0.0KB/s 00:00
2.txt 100% 0 0.0KB/s 00:00
3.txt 100% 0 0.0KB/s 00:00
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
[root@server0 tmp]# scp -r -P 10000 /tmp/test1 root@desktop0:/tmp
ssh: connect to host desktop0 port 10000: No route to host
lost connection
[root@server0 tmp]# scp -r -P 22 /tmp/test1 root@desktop0:/tmp #ssh默认端口22
root@desktop0's password:
123.txt 100% 0 0.0KB/s 00:00
1.txt 100% 0 0.0KB/s 00:00
2.txt 100% 0 0.0KB/s 00:00
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
命令20
wget Wget - 非交互式网络下载工具
总览
wget [选项]… [URL]…
描述
GNU Wget是一个用于在Web上下载文件的非交互式免费工具,支持HTTP,HTTPS和FTP协议,以及HTTP代理的方式。
(其余暂缺)
选项
启动:
-V, –version 显示 Wget 的版本并且退出。
-h, –help 打印此帮助。
-b, -background 启动后进入后台操作。
-e, -execute=COMMAND 运行‘.wgetrc’形式的命令。
日志记录及输入文件:
-o, –output-file=文件 将日志消息写入到指定文件中。
-a, –append-output=文件 将日志消息追加到指定文件的末端。
-d, –debug 打印调试输出。
-q, –quiet 安静模式(不输出信息)。
-v, –verbose 详细输出模式(默认)。
-nv, –non-verbose 关闭详细输出模式,但不进入安静模式。
-i, –input-file=文件 下载从指定文件中找到的 URL。
-F, –force-html 以 HTML 方式处理输入文件。
-B, –base=URL 使用 -F -i 文件选项时,在相对链接前添加指定的 URL。
下载:
-t, –tries=次数 配置重试次数(0 表示无限)。
–retry-connrefused 即使拒绝连接也重试。
-O –output-document=文件 将数据写入此文件中。
-nc, –no-clobber 不更改已经存在的文件,也不使用在文件名后
添加 .#(# 为数字)的方法写入新的文件。
-c, –continue 继续接收已下载了一部分的文件。
–progress=方式 选择下载进度的表示方式。
-N, –timestamping 除非远程文件较新,否则不再取回。
-S, –server-response 显示服务器回应消息。
–spider 不下载任何数据。
-T, –timeout=秒数 配置读取数据的超时时间 (秒数)。
-w, –wait=秒数 接收不同文件之间等待的秒数。
–waitretry=秒数 在每次重试之间稍等一段时间 (由 1 秒至指定的 秒数不等)。
–random-wait 接收不同文件之间稍等一段时间(由 0 秒至 2*WAIT 秒不等)。
-Y, –proxy=on/off 打开或关闭代理服务器。
-Q, –quota=大小 配置接收数据的限额大小。
–bind-address=地址 使用本机的指定地址 (主机名称或 IP) 进行连接。
–limit-rate=速率 限制下载的速率。
–dns-cache=off 禁止查找存于高速缓存中的 DNS。
–restrict-file-names=OS 限制文件名中的字符为指定的 OS (操作系统) 所允许的字符。
目录:
-nd –no-directories 不创建目录。
-x, –force-directories 强制创建目录。
-nH, –no-host-directories 不创建含有远程主机名称的目录。
-P, –directory-prefix=名称 保存文件前先创建指定名称的目录。
–cut-dirs=数目 忽略远程目录中指定数目的目录层。
HTTP 选项:
–http-user=用户 配置 http 用户名。
–http-passwd=密码 配置 http 用户密码。
-C, –cache=on/off (不)使用服务器中的高速缓存中的数据 (默认是使用的)。
-E, –html-extension 将所有 MIME 类型为 text/html 的文件都加上 .html 扩展文件名。
–ignore-length 忽略“Content-Length”文件头字段。
–header=字符串 在文件头中添加指定字符串。
–proxy-user=用户 配置代理服务器用户名。
–proxy-passwd=密码 配置代理服务器用户密码。
–referer=URL 在 HTTP 请求中包含“Referer:URL”头。
-s, –save-headers 将 HTTP 头存入文件。
-U, –user-agent=AGENT 标志为 AGENT 而不是 Wget/VERSION。
–no-http-keep-alive 禁用 HTTP keep-alive(持久性连接)。
–cookies=off 禁用 cookie。
–load-cookies=文件 会话开始前由指定文件载入 cookie。
–save-cookies=文件 会话结束后将 cookie 保存至指定文件。
–post-data=字符串 使用 POST 方法,发送指定字符串。
–post-file=文件 使用 POST 方法,发送指定文件中的内容。
HTTPS (SSL) 选项:
–sslcertfile=文件 可选的客户段端证书。
–sslcertkey=密钥文件 对此证书可选的“密钥文件”。
–egd-file=文件 EGD socket 文件名。
–sslcadir=目录 CA 散列表所在的目录。
–sslcafile=文件 包含 CA 的文件。
–sslcerttype=0/1 Client-Cert 类型 0=PEM (默认) / 1=ASN1 (DER)
–sslcheckcert=0/1 根据提供的 CA 检查服务器的证书
–sslprotocol=0-3 选择 SSL 协议;0=自动选择,
1=SSLv2 2=SSLv3 3=TLSv1
FTP 选项:
-nr, –dont-remove-listing 不删除“.listing”文件。
-g, –glob=on/off 设置是否展开有通配符的文件名。
–passive-ftp 使用“被动”传输模式。
–retr-symlinks 在递归模式中,下载链接所指示的文件(连至目录
则例外)。
递归下载:
-r, –recursive 递归下载。
-l, –level=数字 最大递归深度(inf 或 0 表示无限)。
–delete-after 删除下载后的文件。
-k, –convert-links 将绝对链接转换为相对链接。
-K, –backup-converted 转换文件 X 前先将其备份为 X.orig。
-m, –mirror 等效于 -r -N -l inf -nr 的选项。
-p, –page-requisites 下载所有显示完整网页所需的文件,例如图像。
–strict-comments 打开对 HTML 备注的严格(SGML)处理选项。
递归下载时有关接受/拒绝的选项:
-A, –accept=列表 接受的文件样式列表,以逗号分隔。
-R, –reject=列表 排除的文件样式列表,以逗号分隔。
-D, –domains=列表 接受的域列表,以逗号分隔。
–exclude-domains=列表 排除的域列表,以逗号分隔。
–follow-ftp 跟随 HTML 文件中的 FTP 链接。
–follow-tags=列表 要跟随的 HTML 标记,以逗号分隔。
-G, –ignore-tags=列表 要忽略的 HTML 标记,以逗号分隔。
-H, –span-hosts 递归时可进入其它主机。
-L, –relative 只跟随相对链接。
-I, –include-directories=列表 要下载的目录列表。
-X, –exclude-directories=列表 要排除的目录列表。
-np, –no-parent 不搜索上层目录。
栗子1:下载文件到指定目录
wget -o /tmp/GPL http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/GPL
栗子2:递归下载到指定目录
wget -r /tmp/img/ http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/images/
栗子3:断点续传
wget -c /tmp/img/ http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/images/
栗子4:限速下载
[root@desktop0 tmp]# wget --limit-rate=200k /tmp/img/ http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/images/
/tmp/img/: Scheme missing.
--2019-03-18 10:07:23-- http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/images/
Resolving cla***oom.example.com (cla***oom.example.com)... 172.25.254.254
Connecting to cla***oom.example.com (cla***oom.example.com)|172.25.254.254|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1395 (1.4K) [text/html]
Saving to: ‘index.html’
100%[======================================>] 1,395 --.-K/s in 0s
2019-03-18 10:07:23 (168 MB/s) - ‘index.html’ saved [1395/1395]
栗子5:使用wget -b后台下载
[root@desktop0 tmp]# wget -ob /tmp/GGG http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/GPL
使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
[root@desktop0 tmp] #mkdir -p a{1/{a,b},2}
[root@desktop0 tmp]# mkdir -p {x,q}{_y,_z}
[root@desktop0 tmp]# ls
复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
find /etc -name p*[^[:digit:]] -exec cp -avr {} /tmp/mytest1 \;
创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
[root@centos7 ~]# useradd -u 5001 -s /bin/zsh -d /tmp/tom -G jack tom
useradd: user 'tom' already exists
[root@centos7 ~]# cat /etc/passwd
tom:x:5001:5001::/tmp/tom:/bin/zsh
重要参考:
https://www.cnblogs.com/analyzer/archive/2010/05/04/1727438.html
https://superuser.com/questions/593196/cp-h-vs-cp-l-what-is-a-command-line-symbolic-link
https://www.cnblogs.com/MLibra/p/6240209.html
https://www.cnblogs.com/yorkyang/p/6294894.html
http://www.cnblogs.com/peida/archive/2013/03/18/2965369.html