Linux系统命令学习-文件和目录操作

2017年05月6日

原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2621.html https://www.myzhenai.com/thread-18001-1-1.html
请关注我的今日头条号(龙华仙岛)一起学习Linux
Linux下查询命令参数请用 -h –help 即命令后边跟上-h 或者 –help
一: 什么是文件?
在 Linux 系统上,文件被看做是字节序列这种概念使得所有的系统资源有了统一的标识,这些资源包括:普通文件或目录、磁盘设备、控制台(键盘、显示器)、打印机等对这些资源的访问和处理都是通过字节序列的方式实现的
二: 文件的类型
Linux 系统下的文件类型包括:
普通文件( – )
目录( d )
符号链接( l )
字符设备文件( c )
块设备文件( b )
套接字( s )
命名管道( p )
普通文件
普通文件仅仅就是字节序列,Linux 并没有对其内容规定任何的结构普通文件可以是程序源代码(C、C++、Python、Perl 等)、可执行文件(文件编辑器、数据库系统、出版工具、绘图工具等)、图片、声音、图像等Linux 不会区别对待这些文件,只有处理这些文件的应用程序才会对根据文件的内容为它们赋予相应的含义在 DOS 或 Winodws 环境中,所有的文件名的后缀就能表示该文件的类型,如:*.exe表示可执行文件,*.bat 表示批处理文件在 Linux 环境下,只要是可执行的文件并具有可执行属性它就能执行,不管其文件名后缀是什么但是对一些数据文件一般也遵循一些文件名后缀规则
ls 命令 功能说明:显示文件和目录列表

[RucLinux@localhost /]$ ls --help
用法:ls [选项]... [文件]...
列出 FILE 的信息(默认为当前目录)
如果不指定-cftuvSUX 或--sort 选项,则根据字母大小排序
长选项必须使用的参数对于短选项时也是必需使用的
  -a, --all			不隐藏任何以. 开始的项目
  -A, --almost-all		列出除. 及.. 以外的任何项目
      --author			与-l 同时使用时列出每个文件的作者
  -b, --escape			以八进制溢出序列表示不可打印的字符
      --block-size=大小		块以指定大小的字节为单位
  -B, --ignore-backups		不列出任何以"~"字符结束的项目
  -c				配合-lt:根据ctime 排序并显示ctime(文件
				状态最后更改的时间)
				配合-l:显示ctime 但根据名称排序				其他情况:按ctime 排序
  -C				每栏由上至下列出项目
      --color[=WHEN]		控制是否使用色彩分辨文件WHEN 可以是
				"never"(默认)、"always"或"auto"其中之一
  -d, --directory		当遇到目录时列出目录本身而非目录内的文件
  -D, --dired			产生适合Emacs 的dired 模式使用的结果
  -f				不进行排序,-aU 选项生效,-lst 选项失效
  -F, --classify		加上文件类型的指示符号(*/=@| 其中一个)
      --format=关键字		交错-x,逗号分隔-m,水平-x,长-l,
				单栏-1,详细-l,垂直-C
      --full-time		即-l --time-style=full-iso
  -g				类似-l,但不列出所有者
      --group-directories-first
			在文件前分组目录此选项可与--sort 一起使用,
			但是一旦使用--sort=none (-U)将禁用分组
  -G, --no-group		以一个长列表的形式,不输出组名
  -h, --human-readable		与-l 一起,以易于阅读的格式输出文件大小
				(例如 1K 234M 2G)
      --si			同上面类似,但是使用1000 为基底而非1024
  -H, --dereference-command-line
				跟随命令行列出的符号链接
      --dereference-command-line-symlink-to-dir
				跟随命令行列出的目录的符号链接
      --hide=PATTERN         	隐藏符合PATTERN 模式的项目
				(-a 或 -A 将覆盖此选项)
      --indicator-style=方式	指定在每个项目名称后加上指示符号方式:
				none (默认),classify (-F),file-type (-p)
  -i, --inode			显示每个文件的inode 号
  -I, --ignore=PATTERN		不显示任何符合指定shell PATTERN 的项目
  -k				即--block-size=1K
  -l				使用较长格式列出信息
  -L, --dereference		当显示符号链接的文件信息时,显示符号链接所指示
				的对象而并非符号链接本身的信息
  -m				所有项目以逗号分隔,并填满整行行宽
  -n, --numeric-uid-gid		类似 -l,但列出UID 及GID 号
  -N, --literal			输出未经处理的项目名称 (如不特别处理控制字符)
  -o				类似 -l,但不列出有关组的信息
  -p,  --indicator-style=slash	对目录加上表示符号"/"
  -q, --hide-control-chars	以"?"字符代替无法打印的字符
      --show-control-chars	直接显示无法打印的字符 (这是默认方式,除非调用
				的程序名称是"ls"而且是在终端输出结果)
  -Q, --quote-name		将条目名称括上双引号
      --quoting-style=方式	使用指定的quoting 方式显示条目的名称:
				literal、locale、shell、shell-always、c、escape
  -r, --reverse			排序时保留顺序
  -R, --recursive		递归显示子目录
  -s, --size			以块数形式显示每个文件分配的尺寸
  -S				根据文件大小排序
      --sort=WORD		以下是可选用的WORD 和它们代表的相应选项:
				extension -X       status   -c
				none      -U       time     -t
				size      -S       atime    -u
				time      -t       access   -u
				version   -v       use      -u
      --time=WORD		和-l 同时使用时显示WORD 所代表的时间而非修改时
				间:atime、access、use、ctime 或status;加上
				--sort=time 选项时会以指定时间作为排序关键字
      --time-style=STYLE	和-l 同时使用时根据STYLE 代表的格式显示时间:
				full-iso、iso、locale、posix-iso、+FORMAT
				FORMAT 即是"date"所用的时间格式;如果FORMAT
				是FORMAT1< 换行>FORMAT2,FORMAT1 适用于较旧
				的文件而FORMAT2 适用于较新的文件;如果STYLE
				以"posix-"开头,则STYLE 仅在POSIX 语系之外
				生效
  -t				根据修改时间排序
  -T, --tabsize=宽度	指定制表符(Tab)的宽度,而非8 个字符
  -t			按修改时间排序
  -T, --tabsize=COLS	指定制表符(Tab)的宽度,而非8个字符
  -u			同-lt 一起使用:按照访问时间排序并显示
			同-l一起使用:显示访问时间并按文件名排序
			其他:按照访问时间排序
  -U			不进行排序;按照目录顺序列出项目
  -v			在文本中进行数字(版本)的自然排序
  -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

SELinux options:

  --lcontext                 Display security context.   Enable -l. Lines
                             will probably be too wide for most displays.
  -Z, --context              Display security context so it fits on most
                             displays.  Displays only mode, user, group,
                             security context and file name.
  --scontext                 Display only security context and file name.
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y
使用色彩来区分文件类型的功能已被禁用,默认设置和 --color=never 同时禁用了它
使用 --color=auto 选项,ls 只在标准输出被连至终端时才生成颜色代码
LS_COLORS 环境变量可改变此设置,可使用 dircolors 命令来设置
退出状态:
 0  正常
 1  一般问题 (例如:无法访问子文件夹)
 2  严重问题 (例如:无法使用命令行参数)

 

ls -l 列出当前目录下的所有目录和文件以及它们所属的用户组和权限
ls -a 列出当前目录下的所有目录和文件,包括隐藏文件
ls -liR 列出当前目录下的的所有目录(包含递归目录下的所有文件)和文件的大小,用户组,权限,日期

 
tree 命令 功能说明:显示文件和目录树
安装

yum install tree
apt-get install tree

 

[RucLinux@localhost /]$ tree --help
usage: tree [-adfghilnpqrstuvxACDFNS] [-H baseHREF] [-T title ] [-L level [-R]]
	[-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes]
	[--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset]
	[--filelimit #] []
  -a            All files are listed.
  -d            List directories only.
  -l            Follow symbolic links like directories.
  -f            Print the full path prefix for each file.
  -i            Don't print indentation lines.
  -q            Print non-printable characters as '?'.
  -N            Print non-printable characters as is.
  -p            Print the protections for each file.
  -u            Displays file owner or UID number.
  -g            Displays file group owner or GID number.
  -s            Print the size in bytes of each file.
  -h            Print the size in a more human readable way.
  -D            Print the date of last modification.
  -F            Appends '/', '=', '*', or '|' as per ls -F.
  -v            Sort files alphanumerically by version.
  -r            Sort files in reverse alphanumeric order.
  -t            Sort files by last modification time.
  -x            Stay on current filesystem only.
  -L level      Descend only level directories deep.
  -A            Print ANSI lines graphic indentation lines.
  -S            Print with ASCII graphics indentation lines.
  -n            Turn colorization off always (-C overrides).
  -C            Turn colorization on always.
  -P pattern    List only those files that match the pattern given.
  -I pattern    Do not list files that match the given pattern.
  -H baseHREF   Prints out HTML format with baseHREF as top directory.
  -T string     Replace the default HTML title and H1 header with string.
  -R            Rerun tree when max dir level reached.
  -o file       Output to file instead of stdout.
  --inodes      Print inode number of each file.
  --device      Print device ID number to which each file belongs.
  --noreport    Turn off file/directory count at end of tree listing.
  --nolinks     Turn off hyperlinks in HTML output.
  --dirsfirst   List directories before files.
  --charset X   Use charset X for HTML and indentation line output.
  --filelimit # Do not descend dirs with more than # files in them.

 
演示

tree -a 列出所有目录和文件
tree -d 仅列出所有目录
tree -a >> tree.log 将所有目录树和文件写到当前目录下的tree.log文件
tree -dfug 列出所有目录和目录路径和所有者及所有者的uid gid

 


pwd 命令 功能说明:显示当前工作目录
演示

pwd 显示当前目录的路径

 

cd 命令 功能说明:切换工作目录
演示

cd /root 切换到root账户目录下
cd /home 切换到家目录下

 
mkdir 命令 功能说明:创建目录

[RucLinux@localhost ~]$ mkdir --help
用法:mkdir [选项]... 目录...
若指定目录不存在则创建目录
长选项必须使用的参数对于短选项时也是必需使用的
  -m, --mode=模式   	设置权限模式(类似chmod),而不是rwxrwxrwx 减umask
  -p, --parents     	需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
  -v, --verbose     	每次创建新目录都显示信息
  -Z, --context=CTX  	将每个创建的目录的SELinux 安全环境设置为CTX
      When COREUTILS_CHILD_DEFAULT_ACLS environment variable is set, -p/--parents
      option respects default umask and ACLs, as it does in Red Hat Enterprise Linux 7 by default
            --help		显示此帮助信息并退出
      --version		显示版本信息并退出

 
演示

mkdir /var/www/toutiao 在/var/www/路径下创建一个叫toutiao的目录

 

rmdir 命令 功能说明:删除空目录

[RucLinux@localhost ~]$ rmdir --help
用法:rmdir [选项]... 目录...
删除指定的空目录

      --ignore-fail-on-non-empty
			忽略仅由目录非空产生的所有错误
  -p, --parents		删除指定目录及其上级文件夹,例如"rmdir -p a/b/c'"
			与"rmdir a/b/c a/b a'" 基本相同
  -v, --verbose		输出处理的目录详情
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

 
演示

rmdir /var/www/toutiao 删除/var/www/路径下的空目录toutiao 非空目录会出错
rmdir /var/www/toutiao 删除指定目录及其上级文件夹 /var/和/var/www/这两个上级目录也会被删除

 

rm 命令 功能说明: 删除目录和文件

[RucLinux@localhost ~]$ rm --help
用法:rm [选项]... 文件...
删除 (unlink) 文件

  -f, --force		强制删除忽略不存在的文件,不提示确认
  -i			在删除前需要确认
  -I			在删除超过三个文件或者递归删除前要求确认此选项比-i 提
			示内容更少,但同样可以阻止大多数错误发生
      --interactive[=WHEN]	根据指定的WHEN 进行确认提示:never,once (-I),
				或者always (-i)如果此参数不加WHEN 则总是提示
      --one-file-system		递归删除一个层级时,跳过所有不符合命令行参
				数的文件系统上的文件
      --no-preserve-roo	不特殊对待"/"
      --preserve-root	不允许删除"/"(默认)
  -r, -R, --recursive	递归删除目录及其内容
  -v, --verbose		详细显示进行的步骤
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出
默认时,rm 不会删除目录使用--recursive(-r 或-R)选项可删除每个给定
的目录,以及其下所有的内容
要删除第一个字符为"-"的文件 (例如"-foo"),请使用以下方法之一:
  rm -- -foo
  rm ./-foo
请注意,如果使用rm 来删除文件,通常仍可以将该文件恢复原状如果想保证
该文件的内容无法还原,请考虑使用shred

 
演示

rm -rf /var/www/toutiao 强制删除toutiao这个目录和递归删除子目录和文件, 切记不能运行 rm -rf / 删除前请ls -a看一看要删除的目录下有没有重要文件和重要的目录
rm -ri 删除目录和文件之前会提示(Y/N)确认选项

 

touch 命令 功能说明:生成新的空文件或更改现有文件的时间戳

[RucLinux@localhost ~]$ touch --help
用法:touch [选项]... 文件...
将每个文件的访问时间和修改时间改为当前时间
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项
如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间
长选项必须使用的参数对于短选项时也是必需使用的
  -a			只更改访问时间
  -c, --no-create	不创建任何文件
  -d, --date=字符串	使用指定字符串表示时间而非当前时间
  -f			(忽略)
  -h, --no-dereference		会影响符号链接本身,而非符号链接所指示的目的地
				(当系统支持更改符号链接的所有者时,此选项才有用)
  -m			只更改修改时间
  -r, --reference=文件	使用指定文件的时间属性而非当前时间
  -t STAMP		使用[[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时间
  --time=WORD		使用WORD 指定的时间:access、atime、use 都等于-a
			选项的效果,而modify、mtime 等于-m 选项的效果
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出
请注意,-d 和-t 选项可接受不同的时间/日期格式

 
演示

touch toutiao.txt 在当前目录下创建一个名称叫toutiao的文件夹
touch -a toutiao.txt 更改文件的访问时间
touch -m toutiao.txt 更改文件的修改时间

 

cp 命令 复制文件或目录

[RucLinux@localhost ~]$ cp --help
用法:cp [选项]... [-T] 源文件 目标文件
 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录
长选项必须使用的参数对于短选项时也是必需使用的
  -a, --archive			等于-dR --preserve=all
      --backup[=CONTROL		为每个已存在的目标文件创建备份
  -b				类似--backup 但不接受参数
      --copy-contents		在递归处理是复制特殊文件内容
  -d				等于--no-dereference --preserve=links
  -f, --force			如果目标文件无法打开则将其移除并重试(当 -n 选项
					存在时则不需再选此项)
  -i, --interactive		覆盖前询问(使前面的 -n 选项失效)
  -H				跟随源文件中的命令行符号链接
  -l, --link			链接文件而不复制
  -L, --dereference		总是跟随符号链接
  -n, --no-clobber		不要覆盖已存在的文件(使前面的 -i 选项失效)
  -P, --no-dereference		不跟随源文件中的符号链接
  -p				等于--preserve=模式,所有权,时间戳
      --preserve[=属性列表	保持指定的属性(默认:模式,所有权,时间戳),如果
					可能保持附加属性:环境、链接、xattr 等
  -c                           same as --preserve=context
      --sno-preserve=属性列表	不保留指定的文件属性
      --parents			复制前在目标目录创建来源文件路径中的所有目录
  -R, -r, --recursive		递归复制目录及其子目录内的所有内容
      --reflink[=WHEN]		控制克隆/CoW 副本请查看下面的内如
      --remove-destination	尝试打开目标文件前先删除已存在的目的地
					文件 (相对于 --force 选项)
      --sparse=WHEN		控制创建稀疏文件的方式
      --strip-trailing-slashes	删除参数中所有源文件/目录末端的斜杠
  -s, --symbolic-link		只创建符号链接而不复制文件
  -S, --suffix=后缀		自行指定备份文件的后缀
  -t,  --target-directory=目录	将所有参数指定的源文件/目录
                                           复制至目标目录
  -T, --no-target-directory	将目标目录视作普通文件
  -u, --update                 copy only when the SOURCE file is newer
                                 than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
  -x, --one-file-system        stay on this file system
  -Z, --context=CONTEXT        set security context of copy to CONTEXT
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出
默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也
被为稀疏这是因为默认情况下使用了--sparse=auto 参数如果明确使用
--sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文
建为稀疏件
使用--sparse=never 参数禁止创建稀疏文件
当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的
情况下才复制如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式
备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择以下是可用的变量值:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份
有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件
是同一个已存在的一般文件的话,cp 会将源文件备份

 
演示

\cp -a /home/wordpress/* /var/www/wordpress/ 将/home/wordpress/这个路径下的的所有目录和文件复制到 /var/www/wordpress/下,并且赋予目录和文件和原目录和文件的权限,并且不会提示(Y/N)
cp -u /home/wordpress/* /var/www/wordpress/ 只有/home/wordpress/这个目录下的目录和文件的修改时间更新,或者要复制到的目录里没有某些文件时才会被替换. 这个可以用作排除文件替换,会提示(Y/N)

 

mv 命令 功能说明:移动文件或目录、文件或目录改名

[RucLinux@localhost ~]$ mv --help
用法:mv [选项]... [-T] 源文件 目标文件
 或:mv [选项]... 源文件... 目录
 或:mv [选项]... -t 目录 源文件...
将源文件重命名为目标文件,或将源文件移动至指定目录
长选项必须使用的参数对于短选项时也是必需使用的
      --backup[=CONTROL]       为每个已存在的目标文件创建备份
  -b                           类似--backup 但不接受参数
  -f, --force                  覆盖前不询问
  -i, --interactive            覆盖前询问
  -n, --no-clobber             不覆盖已存在文件
如果您指定了-i、-f、-n 中的多个,仅最后一个生效
      --strip-trailing-slashes	去掉每个源文件参数尾部的斜线
  -S, --suffix=SUFFIX		替换常用的备份文件后缀
  -t, --target-directory=DIRECTORY	将所有参数指定的源文件或目录
					移动至 指定目录
  -T, --no-target-directory	将目标文件视作普通文件处理
  -u, --update			只在源文件文件比目标文件新,或目标文件
				不存在时才进行移动
  -v, --verbose		详细显示进行的步骤
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出
备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择以下是可用的变量值:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

 
演示

mv toutiao.txt /home/toutiao.log 将当前目录下的toutiao.txt文件移动到/home/家目录下并且改名为toutiao.log
mv -ui /home/wordpress /var/www/ 将/home/wordpress 这个目录移动到/var/www/下, 并且只有被移动的目录下的文件被修改时间比要被覆盖的文件新时或者没有时才会被移动, 会提示(Y/N)

 

ln 命令 创建链接文件
Linux的链接文件就像是windows下的快捷方式一样, 只不过Linux下的每个链接文件都是可以读取的.

[RucLinux@localhost ~]$ ln --help
用法:ln [选项]... [-T] 目标 链接名	(第一种格式)
 或:ln [选项]... 目标		(第二种格式)
 或:ln [选项]... 目标... 目录	(第三种格式)
 或:ln [选项]... -t 目录 目标...	(第四种格式)
在第一种格式中,创建指定名称且指向指定目标链接
在第二种格式中,在当前目录创建指向目标位置的链接
在第三、四种格式中,在指定目录中创建指向指定目标的链接
默认创建硬链接,当使用--symbolic 时创建符号链接
当创建硬链接时每个指定的目标都必须存在符号链接可以指向任意的位置,
当链接解析正常时,将其解析为一个与其父目录关联的链接
长选项必须使用的参数对于短选项时也是必需使用的
      --backup[=CONTROL]	为每个已存在的目标文件创建备份文件
  -b				类似--backup,但不接受任何参数
  -d, -F, --directory		创建指向目录的硬链接(只适用于超级用户)
  -f, --force			强行删除任何已存在的目标文件
  -i, --interactive		删除文件前进行确认
  -L, --logical		将硬链接创建为符号链接引用
  -n, --no-dereference		如果目的地是一个链接至某目录的符号链接,会将
				该符号链接当作普通文件处理,先将该已存在的链
				接备份或删除
  -s, --symbolic		创建符号链接而非硬链接
  -S, --suffix=后缀		自行指定备份文件的后缀
  -t, --target-directory=目录	在指定目录中创建链接
  -T, --no-target-directory	将链接名称当作普通文件
  -v, --verbose		链接前先列出每个文件的名称
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出
备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择以下是可用的变量值:

使用 -s 选项会忽略 -L 和 -P
否则当源为一个符号链接(默认-P)时,会由最后指定的一个选项来控制行为

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

 
演示

ln -s /usr/lib/libaa.so.1 /usr/local/lib/libaa.so 将/usr/lib/libaa.so.1这个文件链接成为/usr/local/lib/libaa.so这个文件

 


sicnature ---------------------------------------------------------------------
Your current IP address is: 3.227.239.160
Your IP address location: 美国弗吉尼亚阿什本
Your IP address country and region: 美国 美国
Your current browser is:
Your current system is:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source http://www.myzhenai.com.cn/post/2621.html

没有评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注