码迷,mamicode.com
首页 > 其他好文 > 详细

文件管理和输出重定向

时间:2017-11-20 01:20:37      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:文件管理和输出重定向

alias rm=‘mv -t /app/‘


tree     显示目录树

      -  d     只显示目录  

      -  L     层数

     

mkdir     创建目录

          -p     自动创建所需的个目录

          -v     显示详细信息

          -m     创建目录是直接指定权限


rmdir     删除空目录

         -p     递归的删除父空目录

         -v     显示详细信息


rm  -r     递归删除目录树


df     用于显示磁盘分区上的可使用的磁盘空间

   -h     以KB以上的单位来显示

   -a     查看全部文件系统

   -T     文件系统类型

   -i     列出inode信息而不是块使用情况


watch     定期执行程序,显示全屏输出

          -n     指定更新间隔


ln  目标   链接名字    文件之间建立链接(硬链接)

  -s     使符号链接,而不是硬链接(软链接)


stat  选项  文件名      显示文件或文件系统状态


shred  选项  文件名     覆盖文件以隐藏其内容,并可选地删除它

         -n     覆盖次数,默认3次

         -u     覆盖后删除

         -v     查看过程

         -z     用零添加最后的覆盖来隐藏粉碎

     例:shred  -zvun  10


readlink      查看链接文件路径


file  文件名   确定文件类型 (看首部信息,不关心文件后缀)

    -b    不显示文件名

    -f     把需要处理的东西存在一个文件,读取文件的内容,适合批处理

    -F     使用指定分隔符号替换输出文件名后默认的”:”分隔符

    -L     查看对应软链接对应文件的文件类型






dd  if=/dev/zero of =/boot/bigfile bs=1M count=500  可控的添加文件内容


lsof  |  grep deleted  查看哪些文件已删除但未释放空间


killall  进程     关掉进程


ps  aux|grep  vim     查看进程


ls  -il     显示节点编号


echo  f{1..50000} | xargs touch     创建大批量文件

watch  -n 1 -df -i


通常rm删除大文件未必会立即释放空间,所以建议先使用  >   清空文件内容,在使用rm 删除文件。


Centos 6使用的文件系统 ext4   Centos7使用的文件系统 xfs


文件分为两部分元数据(文件的属性 )和用户数据(即文件数据块,数据块是记录文件真是内容的地方)。元数据中的inode号才是文件的唯一标识而非文件名,文件名(存在于数据块中)只是方便人的使用和记忆。


数据的位置:

                   直接指针(有12个,0-11)直接指向数据块(4K),数据低于48K可以通过直接指针直接找到

                   间接指针:直接指向的是指针块(4K),消耗4个字节来描述数据块的位置




节点编号会被重复利用


centos6 根的节点编号是 2  (挂载点都是为2)

centos7的节点编号是64

每个分区分配自己的节点编号,不同分区节点编号可以一样,同一个文件不能拥有不同的节点编号


文件名不在节点表里,存在于文件夹的文件内容中(数据块中)





链接数:一个节点编号对应的有几个文件名

删除文件只是删除节点信息,并没有把数据删除


硬链接:可以存放在同一目录上,也可以在不同目录上(不允许跨分区创建)

软链接大小是链接路径的大小


软链接和硬链接区别:

1.本质不同:硬链接是同一个文件。软链接不是同一个文件

2.删除:删除一个硬链接的文件并不影响有相同inode的文件使用。删除软链接的原始文件则软链接失效

3.创建:链接创建完成连接数会增加。软链接则不会

4.跨分区:硬链接不可以跨分区创建。软链接可以

5.目录:硬链接不 可以创建目录。软链接可以


软链接:源文件的路径是相对路径,一定是相对于软链接文件的路径,而非相对于当前工作目录的路径






程序:指令+数据


打开的文件都有一个fd: file descriptor (文件描述符)

I/O重定向:改变默认


STDOUT和STDERR可以被重定向到文件

命令 操作符号 文件名

支持的操作符号包括:

>      把STDOUT重定向到文件

2>      把STDERR重定向到文件

&>      把所有输出重定向到文件

>      文件内容会被覆盖

set –C 禁止将内容覆盖已有文件,但可追加

>| file 强制覆盖

set +C 允许覆盖

>> 原有内容基础上,追加内容


<     标准输入重定向


/dev/null     垃圾箱

ls /misc/


systemctl enable autofs ; systemctl start auttofs      让auttofs可用,auttofs可用了 /misc/cd  才可用



ls  -l  /proc/进程号/fd/


         

             ():合并多个程序的STDOUT

例如:

(ls;pwd;hostname) >> f3.log  多条命令同时重定向一个文件中


(errcmd;hostname) > /app/true.log  2> /app/error.log     正确的信息和错误信息分开重定向


(errcmd;hostname) > /app/true.log  2>&1     等同于    &>     等同于下面

((errcmd;hostname) 2>&1) > /app/true.log    错的变成对的,在重定向到文件


(echo error 1>&2) 2> /dev/nul     对的变成错的,错的重定向到 垃圾箱









linux和windows的文本格式不一样,linux一个符号来标识换行,Windows两个符号来标识 (0d  0a)


tr     转换和删除字符

  -c     取补集(除了)

例:tr  -sc  ‘a‘     除了a全都压缩  

aaabbbcccaaa

aaabcaaa

例:tr  -dc  ‘a‘     除了a全删,ctrl+d才能结束

abcabcabc

aaa

例:tr  -dc  ‘a\n’     保留a和回车

 -d     删除

 -s     连续重复字符会被压缩(2个以上)  

 -t          

 \t     表示tab键

\n     换行

\r     表示回车键


 


例:tr -d ‘\n‘  <  f1     删除回车并重定向 f1

      tr  ‘\n‘ ‘ ‘  <  f1     换行替换成空格重定向 f1

      tr -d ‘\r‘ < win.txt > newin.txt     windows文本格式转换为linux  

      dos2unix     windows文本格式转换为linux  

      unix2dos     linux文本格式转换为windows


cat  -A win.txt(windows文本)

a^M$

b^M$

c^M$

^M$

^M$

例:

hexdump  -c win.txt    





mail   -s 邮件标题  收件人     发邮件

mail     接受邮件     输入主题名查看


单行重定向,

多行重定向 <<    

例:cat  > f1 << EOF(end of file)    统一提交

        aaabbbbccc

        bbbbbccccc

        EOF

                                   

命令 | 命令 |命令   管道符号(只能处理标准输出)

例: ls | tr ‘a-z‘ ‘A-Z‘

F1

F2

例: who | tr ‘a-z‘ ‘A-Z‘

ROOT     PTS/0        2017-11-14 17:33 (192.168.27.1)

ROOT     PTS/1        2017-11-14 21:32 (192.168.27.1)

LIYIHANG TTY2         2017-11-14 21:27

例:error  2>&1 | tr ‘a-z‘ ‘A-Z‘  (通过 2>&1把错误输出转换为正确输出)

BASH: ERROR: COMMAND NOT FOUND...

      error   |& tr ‘a-z‘ ‘A-Z‘   等同    error  2>&1 | tr ‘a-z‘ ‘A-Z‘

例:error   |& tr ‘a-z‘ ‘A-Z‘ | tr -d ‘O‘

BASH: ERRR: CMMAND NT FUND...

例:ls -R /etc/ | more    管道符号配合 more 分段查看


tee     重定向到多个目标    (因为屏幕上可以显示,所以可以做第二次处理)

    -s     追加到给定的文件,不要覆盖

例: who | tee  f1 | tr -d r

oot     pts/0        2017-11-14 17:33 (192.168.27.1)

oot     pts/1        2017-11-14 21:32 (192.168.27.1)

liyihang tty2         2017-11-14 21:27

例:who | tee who.out |grep liyihang        grep(搜索)

liyihang tty2         2017-11-14 21:27


本文出自 “12029234” 博客,请务必保留此出处http://12039234.blog.51cto.com/12029234/1983349

文件管理和输出重定向

标签:文件管理和输出重定向

原文地址:http://12039234.blog.51cto.com/12029234/1983349

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!