文件和目录的基本操作

一、Linux下的文件类型

Linux文件的常见类型:

1、普通文件
2、目录
3、字符设备文件
4、块设备文件
5、符号链接文件等

现在我们进行一个简要的说明;

1、普通文件和目录

[baixiaoyeer@localhost ~]$ls -lh=[baixiaoyeer@localhost ~]$ll
查看文件属性

image.png

or
image.png
2、字符设备或块设备文件
[baixiaoyeer@localhost ~]$ ls -la /dev/tty
crw-rw-rw-. 1 root tty 5, 0 May 17 22:39 /dev/tty
[baixiaoyeer@localhost ~]$ ls -la /dev/ram0
brw-rw----. 1 root disk 1, 0 May 17 22:39 /dev/ram0
image.png

image.png

注意:
/dev/tty的属性是crw-rw-rw-,前面第一个字符是c,表示是字符设备文件,即串口设备;
/dev/ram0的属性是brw-rw----,前面第一个字符是b,表示块设备,即硬盘、光驱等设备。
这种类的文件,是可以用mknode来创建,用rm来删除的,目前在最新的Linux发行版本中,一般不用自己来创建设备文件,主要是因为文件和内核相关联的。

3、套接口文件
[root@localhost lib]# ls -lh /var/run/cups/cups.sock
srwxrwxrwx. 1 root root 0 May 17 22:40 /var/run/cups/cups.sock

注意:
/var/run/cups/cups.sock的属性是srwxrwxrwx,前面第一个字符是s。仅了解即可。

二、目录的操作

目录相关操作最基本的操作命令

cd:切换目录
pwd:显示目前的目录
mkdir:创建一个新目录
rmdir:删除一个空目录

1、cd是change directory的缩写,用来切换工作目录的命令。注:目录名称与cd命令之间存在一个空格。

绝对路径:【由根目录/写起】;例:/dev/tty
相对路径:【非由/写起】;例:./ or ../

image.png

注意:

.         代表此层目录
..        代表上一目录
-         代表前一工作目录
~         代表【目前使用者身份】所在的家目录
~account  代表account这个使用者家目录
(account是个账号名称)
image.png
2、pwd(显示目前所在的目录)

pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令。实例请参照1。

3、mkdir(创建目录)

[root@localhost ~]# mkdir [-mp](目录名称)

-m 配置文件的权限。直接配置,不需要看默认权限(umask)
-p 直接将所需要的目录(包含上一级目录)递回创建起来

image.png

eg1:创建一个目录

image.png

eg2:创建多级目录

image.png
4、rmdir(删除【空】的目录)

[root@localhost ~]# rmdir [-mp](目录名称)

image.png

eg1:删除一个空目录

image.png

eg2:删除多级空目录

image.png

三、文件的操作

1、文件和目录检查:ls
2、复制:cp & scp
3、删除:rm
4、移动:mv

1、文件和目录检查:ls
[root@SecEvery ~]# 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  严重问题 (例如:无法使用命令行参数)

[root@SecEvery ~]# ls
[root@SecEvery ~]# ls -a

image.png
2、复制:cp & scp
[root@SecEvery ~]# 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 会将源文件备份。

复制/tmp/1.txt到/root目录下,修改文件名为a.txt。

image.png
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

复制本地a.txt到192.168.3.134主机的/tmp目录下。

image.png
3、删除:rm
[root@SecEvery ~]# 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

[root@SecEvery ~]# rm -i aaa.mysql
[root@SecEvery ~]# rm -rf a.txt

image.png
4、移动:mv
[root@SecEvery ~]# 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   永远使用普通方式备份

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容