#006 以文件之名

标签: 文件管理

以文件之名

这里写图片描述

文件类型

符号 文件类型
- 常规文件,即f
d 目录文件
b 块设备文件
c 字符设备文件
l 符号链接文件
p 命名管道
s 套接字文件

目录管理

创建目录

mkdir DIR

删除目录

rmdir DIR

显示目录树,n是数字,代表目录树的深度

tree -L n DIR

文件查看

将多个文件串联起来显示在标准输出

cat [OPTION]... [FILE]...

    #OPTIONS:
        #-e:转义字符
        #-n:显示行号        

显示文件行首第一行到n行,默认为10行

head -n FILE...

显示文件末尾行到倒数第n行,默认为10行

tail -n FILE...

    #-f:查看文件尾部内容不退出,跟随显示新增的行。常用于查看动态日志内容

从文件行首,通过翻屏细读文件

more FILE...

从文件行尾,通过翻屏细读文件

less FILE...

显示文件类型

file FILE

显示文件的元数据信息

stat FILE

文件管理

创建一个临时的文件或目录,至少3个大写X

mktemp FILE.XXXX

复制文件

cp [OPTION]... SOURCE... DIRECTORY

 #  OPTIONS:
 #      -i:提示是否覆盖
 #      -f:强制覆盖原有文件
 #      -r:递归复制
 #      -d:父子链接文件本身,不复制指向的链接文件
 #      --preserve=all:保留源文件的元数据信息

移动文件

mv SOURCE DIRECTORY

删除文件或目录

rm [OPTION]... FILE...

#   OPTIONS:
#       -i:交互式提示
#       -r:递归删除
#       -d:删除空目录
#       -f:强制删除

文件查找

在某一路径下查找文件有两种方式:locatefind命令

locate find
依赖于事先构建好的索引库 实时遍历
查找速度快 查找速度慢
模糊查找 精确查找
非实时查找 实时查找

locate命令

locate [OPTION]... PATTERN...

#   OPTIONS:
#       -b:只匹配路径中的基名
#       -c:统计符合条件的文件的个数

find命令

find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

查找条件

  1. 文件名
  2. 从属关系
  3. 文件类型
  4. 文件大小
  5. 文件权限
  6. 文件时间戳
  7. 组合测试
文件名
find /etc -name "PATTERN"

#   OPTIONS:
#       -name pattern:文件名,满足blob通配符
#       -iname pattern:忽略大小写
#       -regex pattern:基于正则表达式(开头最好带.*)
#       -iregex pattern:忽略大小写
从属关系
find /etc -user USERNAME

#   OPTINOS:
#       -user USERNAME:属主
#       -group GROUPNAME:属组
#       -uid UID:属主UID
#       -gid GID:属组GID
#       -nouser:查找没有属主的文件
#       -nogroup:查找没有属组的文件
文件类型
find /etc -type f

#   OPTIONS:
#       f:普通文件
#       d:目录文件
#       l:符号链接文件
#       b:块设备文件
#       c:字符设备文件
#       p:管道文件
#       s:套接字文件
文件大小
find /etc -size 100K

#   OPTIONS:
#       #[K|M|G]:具体字节大小在同一个单位上换算的数值相等
#       +#[K|M|G]:大于100K
#       -#[K|M|G]:小于100K
文件权限
find /etc -perm 222

#   OPTIONS:
#       MODE:精确权限匹配
#       /MODE:或者关系;任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;
#       -MODE:与关系;同时符合条件即满足
#       +MODE:老版本;现在已经被/MODE替代。
文件时间戳
find /etc -atime 3

#   OPTIONS:
#       -atime:以天为单位访问时间
#           n:过去第n天
#           +n:n天前
#           -n:n天内
#       -mtime:以天为单位修改时间
#       -ctime:以天为单位更改时间
#       -amin:以分钟为单位访问时间
#       -mmin:以分钟为单位修改时间
#       -cmin:以分钟为单位更改时间
组合测试
find /etc -user root -a -perm 222

#   OPTIONS:
#       -a:与(默认)
#       -o:或
#       -not,!:非

处理动作

  • -print:输出至标准输出(默认)
  • -ls:类似于对查找到的文件执行“ls -l”命令
  • -delete:删除查找到的文件
  • -fls /PATH/TO/FILE:将查找到的文件的长格式信息保存到指定文件中
  • -exec COMMADN {} \; :对查找到的文件执行COMMAND命令
  • -ok COMMAND {} \; :对查找到的每个文件执行COMMAND命令,并且每次操作都由用户确定。

"{}"是对查找到的文件名的引用

find命令与xargs命令的结合

find传递查找到的文件路径后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令。有些命令不能接受过长的命令,此时命令会失败,find与xargs结合可规避此问题

xargs - build and execute command lines from standard input

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。

xargs用法

xargs [OPTIONS] [COMMAND [COMMAND-ARGS]]

#   OPTIONS:
#       -n #:每行输出#个元素
#       -d "X":指定分隔符为X
#       -I(大写i):每个参数命令都会执行一次
#       -0:分隔符为0或null字符,配合-print0使用

复制所有图片到/data/images目录下

ls *.jpg | xargs -n1 -I cp {} /data/images

查找出当前目录下文件名后缀为.log的文件,并将其删除

find . -type f -name "*.log" -print0 | xargs -0 rm -f 

将当前目录下的所有.jpg的图片进行归档压缩

find . -type -f -name "*.jpg" -print | xargs tar zcf images.tar.gz

文件压缩和归档

文件压缩

只能压缩文件

  1. gzip
  2. bzip2
  3. xz

gzip/gunzip/zcat

gzip [OPTIONS]... FILE...

#   OPTIONS:
#       -d:解压缩,相当于gunzip
#       -#:指定压缩比(默认是6);压缩比(1-9)越大,所消耗的cpu时钟周期越长
#       -c:将压缩结果输出至标准输出;通过重定向至FILE.gz保存压缩

解压缩

gunzip FILE

压缩后,查看其内容

zcat FILE.gz

bzip2/bunzip2/bzcat

bzip2 [OPTIONS]... FILE...

#   OPTIONS:
#       -d:解压缩
#       -#:指定压缩比
#       -k:保留原文件

xz/unxz/xzcat

xz [OPTIONS]... FILE...

#   OPTIONS:
#       -d:解压缩
#       -#:指定压缩比
#       -k:保留原文件

文件归档并压缩

将多个文件并成一个文件

tar [OPTION]… FILE… 

#   归档OPTIONS:
#       -cf FILE.tar /PATH/FILE...:创建归档
#       -xf FILE.tar -C /PATH/DIR:展开归档至指定目录下
#       -tf /PATH/FILE.tar:查看归档文件中的列表

#   归档并压缩OPTIONS:
#       -zcf /PATH/FILE.tar.gz /PATH/DIR:归档并压缩为FILE.tar.gz
#       -zxf /PATH/FILE.tar.gz:解压缩并展开归档

#   归档并压缩OPTIONS:
#       -jcf /PATH/FILE.tar.bz /PATH/DIR:归档并压缩为FILE.tar.gz
#       -jxf /PATH/FILE.tar.bz:解压缩并展开归档

#   归档并压缩OPTIONS:
#       -Jcf /PATH/FILE.tar.xz /PATH/DIR:归档并压缩为FILE.tar.gz
#       -Jxf /PATH/FILE.tar.xz:解压缩并展开归档

zip:最通用的压缩工具,既能归档又能压缩,但是压缩比有限

#压缩
zip FILE.zip /PATH/FILE

#解压缩
unzip FILE.zip
版权声明:本文为Aarron_DL原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Aarron_DL/article/details/80350646

智能推荐

RIP/DHCP/ACL综合实验

组播: 加入组的组成员才会接受到消息,只需要将流量发送一次到组播地址 减少控制面流量,减少头部复制, RIP1  广播   有类  不支持认证 RIP2  组播   无类  (支持VLAN)、支持认证 所有距离矢量路由协议:具有距离矢量特征的协议,都会在边界自动汇总 控制平面  路由的产生是控制平面的流量 数据平面  ...

【Sublime】使用 Sublime 工具时运行python文件

使用 Sublime 工具时报Decode error - output not utf-8解决办法   在菜单中tools中第四项编译系统 内最后一项增添新的编译系统 自动新建 Python.sublime-build文件,并添加"encoding":"cp936"这一行,保存即可 使用python2 则注释encoding改为utf-8 ctr...

java乐观锁和悲观锁最底层的实现

1. CAS实现的乐观锁 CAS(Compare And Swap 比较并且替换)是乐观锁的一种实现方式,是一种轻量级锁,JUC 中很多工具类的实现就是基于 CAS 的,也可以理解为自旋锁 JUC是指import java.util.concurrent下面的包, 比如:import java.util.concurrent.atomic.AtomicInteger; 最终实现是汇编指令:lock...

Python 中各种imread函数的区别与联系

  原博客:https://blog.csdn.net/renelian1572/article/details/78761278 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误。如果你正好也对此感到困惑可以看下这篇总结。当然,要了解具体的细节,还是应该 read the fuc...

用栈判断一个字符串是否平衡

注: (1)本文定义:左符号:‘(’、‘[’、‘{’…… 右符号:‘)’、‘]’、‘}’……. (2)所谓的字符串的符号平衡,是指字符串中的左符号与右符号对应且相等,如字符串中的如‘(&r...

猜你喜欢

JAVA环境变量配置

位置 计算机->属性->高级系统设置->环境变量 方式一 用户变量新建path 系统变量新建classpath 方式二 系统变量 新建JAVA_HOME,值为JDK路径 编辑path,前加 方式三 用户变量新建JAVA_HOME 此路径含lib、bin、jre等文件夹。后运行tomcat,eclipse等需此变量,故最好设。 用户变量编辑Path,前加 系统可在任何路径识别jav...

常用的伪类选择器

CSS选择器众多 CSS选择器及权重计算 最常用的莫过于类选择器,其它的相对用的就不会那么多了,当然属性选择器和为类选择器用的也会比较多,这里我们就常用的伪类选择器来讲一讲。 什么是伪类选择器? CSS伪类是用来添加一些选择器的特殊效果。 常用的为类选择器 状态伪类 我们中最常见的为类选择器就是a标签(链接)上的为类选择器。 当我们使用它们的时候,需要遵循一定的顺序问题,否则将可能出现bug 注意...

ButterKnife的使用介绍及原理探究(六)

前面分析了ButterKnife的源码,了解其实现原理,那么就将原理运用于实践吧。 github地址:       点击打开链接 一、自定义注解 这里为了便于理解,只提供BindView注解。 二、添加注解处理器 添加ViewInjectProcessor注解处理器,看代码, 这里分别实现了init、getSupportedAnnotationTypes、g...

1.写一个程序,提示输入两个字符串,然后进行比较,输出较小的字符串。考试复习题库1|要求:只能使用单字符比较操作。

1.写一个程序,提示输入两个字符串,然后进行比较,输出较小的字符串。 要求只能使用单字符比较操作。 参考代码: 实验结果截图:...

小demo:slideDown()实现二级菜单栏下拉效果

效果如下,鼠标经过显示隐藏的二级菜单栏 但是这样的时候会存在一个问题,就是鼠标快速不停移入移出会导致二级菜单栏闪屏现象,一般需要使用stop()来清除事件  ...