设为首页 收藏本站
查看: 1038|回复: 0

[经验分享] linux 查找当前目录下超过100M的文件并移动到tmp

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-9-18 09:25:39 | 显示全部楼层 |阅读模式
                      1、文件层级FHS介绍:
        Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。
        FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。

/:linux文件系统根目录
/bin:供所有用户使用的基本命令文件
/sbin:供系统管理员使用的工具程序文件
/lib:供/bin和/sbin程序调用的库文件程序,及系统启动时需要的库文件
/lib64:供64为系统使用的库文件,及系统启动时需要的库文件
/boot:系统启动引导的静态文件(kernel、initranfs、grub等)
/dev:存储设备文件和特殊文件。
/etc:主机特有配置文件,只能为静态文件,一般是文本文件。 etc也是层级目录结构。
        /etc/opt,/etc/x11,/etc/xml,

/home:用户家目录,可选目录
/media:便携设备挂载点,如光盘、u盘等
/mnt:其他文件的临时挂载点
/opt:附加应用程序的安装位置(第三方应用程序),可选路径。
/root:管理员的家目录
/srv:当前主机为服务提供数据的目录
/tmp:临时文件,为那些产生临时文件的程序提供的用于存储临时文件的目录,可供所有用户执行写操作。
/usr:全局共享只读数据路径,它也是一个层级文件系统。
/var:存储经常变化的数据目录,它也是一个层级文件系统。
/proc:用来为内核及进程存储相关信息,多位内核参数。
/sys:提供比/proc更理想的访问linux内核参数的方法途径,其主要作用于为管理linux设备提供一种统一模型的接口。


2、linux文件类型:
Linux文件的类型可以通过命令:ls -l 来查看,一般有如下几种
-:普通文件
d:目录文件
b:块设备文件,块设备文件以“block”为单位,对数据可以进行随机访问。
c:字符设备文件,字符设备文件以“字符”为单位,对数据只能进行线性访问。
l:符号链接文件,相当于windows中的快捷方式
p:命令管道文件
s:套接字文件

3、linux目录、文件操作常用命令:
3.1、创建目录:mkdir,删除目录rmdir
3.2、文件内容查看常用命令:cat、tac、首尾部分查看(tail、head)、分屏查看(more、less)
3.3、文件复制、移动、删除命令:cp、mv、rm

mkdir:创建目录
格式:
mkdir [OPTION]... DIRECTORY...
[OPTION]:
    -p:如果父目录不存在,则自动创建父目录,

    -m:创建目录时,设定目录权限

    -v:显示命令执行的详细信息

如:
[iyunv@localhost ~]# mkdir /tmp/x/y/z
mkdir: cannot create directory ‘/tmp/x/y/z’: No such file or directory
[iyunv@localhost ~]# mkdir -p /tmp/x/y/z
[iyunv@localhost ~]#

rmdir:删除空目录
格式:
rmdir [OPTION]... DIRECTORY...
[OPTION]:
     -p:删除子目录后,如果父目录为空,则一并删除
    -v:显示命令执行的详细信息

cat:把文件和标准输出连接起来,即查看文件内容,它会直接显示到文件尾部一行,
格式: cat [OPTION]... [FILE]...
[OPTION]
    E:显示文件每一行尾的$

    n:显示文件每一行号

如:

tac:和cat类似,只是它是从文件尾部进行查看,不做翻屏处理

tail:输出文件最后一部分内容,默认为文件尾部10行,
    格式:tail [OPTION]... [FILE]...
   [OPTION]
    -c:输出文件尾部多少K字节内容;
    -f:输出文件最后不退出,并显示追加的内容,   
    -n  数字:显示从文件尾部指定多少行开始显示,默认10行
    -n   +数字:  显示从第几行开始显示到行尾



head:输出文件的开始部分,默认为10行;
    格式: head [OPTION]... [FILE]...
[OPTION]:
    -n:指定前多少行


more:分屏查看文件内容,最后直接退出
格式:more [options] file [...]

less:分屏查看文件内容,最后不直接退出,需敲入q退出,man命令调用的less命令;
/pattern:从上往下搜索内容,n方向一致,N方向相反搜索
?pattern:从下往上搜索内容,n方向一致,N方向相反搜索
#G:跳转指定行
GG:跳转文件尾部
空格:向尾部翻一屏

b键:向首部翻一屏

cp:文件复制命令  : 复制源文件到目的文件或目录,复制多个源文件到目录
格式:
       单源复制:cp [OPTION]... [-T] SOURCE DEST
       多源复制:cp [OPTION]... SOURCE... DIRECTORY
       多源复制:cp [OPTION]... -t DIRECTORY SOURCE...

单源复制:cp [OPTION]... [-T] SOURCE DEST

    如果DEST不存在,则事先创建此文件,并复制源文件的数据流至DEST中
    如果DEST存在,

        如果DEST是非目录文件,则复制源文件数据流覆盖目标文件;

        如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,并复制源文件


多源复制:cp [OPTION]... SOURCE... DIRECTORY
    如果DEST不存在,会报错

    如果DEST存在,

        如果DEST是非目录文件,会报错

        如果DEST是目录文件,分别复制每个文件至目录文件中,并保持原名。

[OPTION]:
    -i:交换式复制,即覆盖前提醒用户确认

    -f:强制覆盖目标文件

    -r:递归复制目录文件

    -d:复制符号链接文件本身,而非其指向的源文件
    -a:用于实现归档,保持源文件的所有读写执行和属主属组权限。
如:

[user@localhost ~]$ cp /etc/issue /tmp  //DEST目标文件不存在,
[user@localhost ~]$ ls /tmp
anaconda.log
hsperfdata_root
hsperfdata_user
ifcfg.log
issue

[iyunv@localhost user]# cp /etc/issue /etc/fstab /tmp/abc  //复制issue、fstab文件到目录abc
cp: target ‘/tmp/abc’ is not a directory
[iyunv@localhost user]# mkdir /tmp/abc
[iyunv@localhost user]# !cp
cp /etc/issue /etc/fstab /tmp/abc
[iyunv@localhost user]# ls /tmp/abc
fstab  issue
[iyunv@localhost user]#

[iyunv@localhost ~]# mkdir /tmp/bcd
[iyunv@localhost ~]# cp -rv  /var/log/ /tmp/bcd  //复制目录,DEST需事先存在

注意:复制后的文件/目录权限和属主属组发生了变化。可以用-a选项保持这些参数
[iyunv@localhost ~]# cp /var/log/tomcat/ /tmp/
cp: omitting directory ‘/var/log/tomcat/’
[iyunv@localhost ~]# cp -rv /var/log/tomcat/ /tmp/
‘/var/log/tomcat/’ -> ‘/tmp/tomcat’
‘/var/log/tomcat/catalina.out’ -> ‘/tmp/tomcat/catalina.out’   
[iyunv@localhost ~]# ll /var/log/tomcat/ /tmp/tomcat/
/tmp/tomcat/:
total 4
-rw-r-----. 1 root root 28 Sep 17 18:16 catalina.out

/var/log/tomcat/:
total 4
-rw-rw----. 1 tomcat tomcat 28 Nov  6  2016 catalina.out
[iyunv@localhost ~]# cp -a /var/log/firewalld  /tmp/
[iyunv@localhost ~]# ll /var/log/firewalld /tmp/firewalld
-rw-r--r--. 1 root root 0 Aug 29 20:22 /tmp/firewalld
-rw-r--r--. 1 root root 0 Aug 29 20:22 /var/log/firewalld



mv:移动文件或重命名文件
格式:    mv [OPTION]... [-T] SOURCE DEST
       mv [OPTION]... SOURCE... DIRECTORY
       mv [OPTION]... -t DIRECTORY SOURCE...


rm:删除文件或目录
格式: rm [OPTION]... FILE...
[OPTION]:
    -i:交互式命令

    -r:递归操作,删除目录时会有用。

    -f:强化操作

[iyunv@localhost ~]# rm /tmp/bcd/
rm: cannot remove ‘/tmp/bcd/’: Is a directory
[iyunv@localhost ~]# rm -r /tmp/bcd/
rm: remove directory ‘/tmp/bcd/’? y
[iyunv@localhost ~]# ls /tmp/bcd
ls: cannot access /tmp/bcd: No such file or directory
[iyunv@localhost ~]#


4、bash的基础特性介绍:
4.1、命令历史:history
shell进程会在其会话中保存此前用户提交的执行过的命令。
命令格式:history  【option】
history的环境变量有:
HISTSIZE:shell进程可保留的命令历史的条数
HISTFILE:持久保存命令历史的文件,一般每个用户下都会有,如家目录下的.bash_history
HISTFILESIZE:定义历史文件的大小。

option选项有:
-c:清空历史命令列表
-d:偏移量,删除指定命令历史
-r:从命令历史文件中读取命令至命令历史中(内存)
-w:把历史列表中命令追加至历史文件中。

调用命令历史列表中的命令:  !
!#:再一次执行命令历史列表中的第#条命令
!!:再一次执行上一次操作的命令
!sting:再一次执行最近一次可以匹配命令历史列表中的以sting开头的命令。

调用上一条命令中最后一个参数:
    快捷键:esc + . :按esc键后松开,再按点号(.)
    字符组合:!$.     :叹号和$号一起按


控制命令历史记录的方式:
环境变量:HISTCONTROL      (修改仅对当前shell有效)
HISTCONTROL=ignoredups:忽略重复的命令
HISTCONTROL=ignorespace:忽略以空白字符开头的命令
HISTCONTROL=ignoreboth:以上两者同时忽略

4.2、命令补全、路径补全(按tab键)
shell程序在接收到用户执行的命令请求时,分析完成后,最左侧的字符串会被当作命令执行。

命令处理机制:
    查找内部命令

    根据PATH环境变量中设定的目录,从左向右逐个按目录查找


命令补全机制:
    给定的打头字符串如果唯一标识某命令文件,则tab键直接补全

    给定的打头字符串如果不能唯一标识某命令程序文件,则再按一次tab键,会给出命令列表。


路径补全机制:
    根据给定的起始路径补全,即以对应路径下的打头字符串来逐一匹配起始路径下的每个文件。

    如果能唯一标识某路径,则补全,否则,再按一次tab,给出列表。



4.3、命令行展开:    ~、{ }
~ :自动展开为用户的家目录( # cd ~),或指定用户的家目录(# cd ~ user)
{ }: 可承载一个以“,”(逗号)分隔的路径列表,并能够将其展开为多个路径。如:/tmp/{a,b}相当于/tmp/a和/tmp/b

如:
创建/tmp目录下的:a_c,a_d,b_c,b_d,
[iyunv@localhost ~]# mkdir /tmp/{a,b}_{b,d}
[iyunv@localhost ~]# ls /tmp/
a_b
a_d
b_b
b_d

创建/tmp/mylinux目录下的目录结构:
[iyunv@localhost ~]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grup
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   ├── local
│      ├── bin
│      └── sbin
│   
│   
└── var
    ├── lock
    ├── log
    └── run

26 directories, 0 files
[iyunv@localhost ~]#
[iyunv@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

4.4、命令的执行状态结果
bash通过状态返回值来查看命令的执行结果,状态返回值保存于bash的特殊变量“$?"中。
注意:$? 只能获得最近命令执行的状态结果。
通过:#echo $? 执行结果来查看命令执行状态结果。
    如果命令成功执行:输出数字“0”
    如果命令未成功执行:输出数字“1-255”中的一个数字,
如:
[iyunv@localhost ~]# ls /
1    boot  etc   lib    media  opt   root  sbin  sys  usr
bin  dev   home  lib64  mnt    proc  run   srv   tmp  var
[iyunv@localhost ~]# echo $?
0
[iyunv@localhost ~]#
[iyunv@localhost ~]# lsls /
bash: lsls: command not found...
[iyunv@localhost ~]# !echo
echo $?
127
[iyunv@localhost ~]#



4.5、引用命令的执行结果: $(命令) 或 `命令`    注意 ` 为反引号。

如:#mkdir $(date +%H-%M-%S)             //引用时分秒为创建目录的名字。


4.6、变量的引用:

     ‘ 变量 ’  :单引号表示强引用,引用变量本身;
    ”变量“   :双引号表示弱引用,引用变量的执行结果

    $(命令) :命令执行结果引用



4.7、bash快捷键:
ctrl+a:跳转至命令行首部
ctrl+e:跳转至命令行尾部
ctrl+u:删除行首至光标所在处之间的所有字符
ctrl+k:删除光标所在处至行尾之间的所有字符
ctrl+l:清屏,相当于clear命令


4.8、glob通配符(文件名通配符)
linux的哲学思想之一就是一切皆文件,众多文件组织在一起,可以通过glob通配符去匹配需要的文件名。
注意:glob匹配的是整个文件名,而非部分文件名。
glob通过“元字符”去匹配信息。

元字符介绍:
    * :  *表示匹配任意长度任意字符

    ?:  ?表示匹配任意单个字符

    [ ] :  [ ]表示匹配指定范围内的任意单个字符

        [a-z]: 表示匹配a-z A-Z中的任意一个字母,不区分大小写;即匹配所有字母

        [A-Z]:表示匹配a-z A-Z中的任意一个字母,不区分大小写;即匹配所有字母
        [0-9]:表示匹配所有数字中的一个数字,即匹配所有数字

        [a-z0-9]:表示匹配所有的字母和数字

        [abcde]:表示匹配abcde中的任意一个字符

        特定格式:

        [[:upper:]] :表示匹配所有大写字母中的一个

        [[:lower:]] :表示匹配所有小写字母中的一个
        [[:alpher:]] :表示匹配所有字母(大小写)中的一个
        [[:digit:]] :表示匹配所有数字
        [[:alnum:]] :表示匹配所有字母和数字中的一个
        [[:space:]] :表示匹配所有空白字符
        [[:punct:]] :表示匹配所有标点符号
    [^ ] : [^ ]表示匹配指定范围外的任意单个字符
        [^[:upper:]] : 表示匹配所有大写字母以外的单个字符

        [^abcde]   :  表示匹配abcde外的任意一个字符

  如:
    显示/var/log目录下所有以l开头,以一个小写字母结尾,且中间出现一位数字的文件或目录
        [iyunv@localhost ~]# ls -d /var/log/l[0-9][[:lower:]]
    显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录      
        [iyunv@localhost ~]# ls -d /etc/[0-9]*[^0-9]
    复制/etc/目录下,所有以.conf结尾,且以mnrp开头的文件或目录至/tmp/conf.d目录下
        [iyunv@localhost ~]# mkdir /tmp/conf.d
        [iyunv@localhost ~]# cp -r /etc/[mnrp]*.conf /tmp/conf.d
  


5、常用命令:alias,unalias,stat,touch

[iyunv@localhost ~]# alias cls=clear
[iyunv@localhost ~]# alias
alias cls='clear'
[iyunv@localhost ~]# unalias cls

stat命令:查看文件元数据信息
每个文件都有两类数据:
    元数据:metadata //不是文件的组成部分,描述文件属性的信息,类似winodws文件的属性常规信息

    数据:data     //文件本身内容数据



如:


[iyunv@localhost ~]# stat /tmp/yum.log.old
  File: ‘/tmp/yum.log.old’
  Size: 52                Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d        Inode: 11797030    Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-09-17 18:04:23.207995463 +0800
Modify: 2017-09-17 18:04:23.207995463 +0800
Change: 2017-09-17 18:37:48.960974954 +0800
Birth: -
[iyunv@localhost ~]#


注意:元数据有三个重要的时间参数:只能修改访问时间和修改时间,不能修改改动时间,改动时间会因访问时间和修改时间改变而变化。

Access: 2017-09-17 18:04:23.207995463 +0800    //actime:访问时间
Modify: 2017-09-17 18:04:23.207995463 +0800    //mtime:修改时间   
Change: 2017-09-17 18:37:48.960974954 +0800    //ctime:改动时间


touch:修改文件时间戳;如果文件不存在,则用来创建文件

格式:touch [OPTION]... FILE...
[OPTION]
-a:仅修改accestine

-m:仅修改modifytime
-c:指定文件不存在时,不创建文件
-t:use [[CC]YY]MMDDhhmm[.ss] instead of current time //用指定时间代替当前时间。

如:
[iyunv@localhost ~]# touch -t 201709171219 /tmp/yum.log.old
[iyunv@localhost ~]# stat /tmp/yum.log.old
  File: ‘/tmp/yum.log.old’
  Size: 52                Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d        Inode: 11797030    Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-09-17 12:19:00.000000000 +0800
Modify: 2017-09-17 12:19:00.000000000 +0800
Change: 2017-09-17 20:22:43.883910589 +0800
Birth: -
[iyunv@localhost ~]#

                  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-404626-1-1.html 上篇帖子: JDK安装和配置 下篇帖子: Linux Web服务器网站故障分析常用的命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表