linux学习笔记-02文件相关命令

ls

  • 功能:列出目标目录中所有的子目录和文件

  • 常用命令参数

    -a    查看全部文件(包括隐藏文件)
    -d    仅看目录本身
    -h    易读的文件容量(如k,m,g)
    -l    显示文件的详细信息
    -all  查看全部文件及其权限
    

cd

  • 格式:

    cd [目录名]
    
  • 进入系统根目录

    cd /
    
  • 进入用户的根目录

    1. 切换到当前用户主目录
    cd ~
    
    1. 切换到指定用户的根目录
    cd ~用户名
    
  • 跳转到进入此目录之前所在的目录

    cd -
    
  • 显示上一次调用cd命令的命令参数

    cd !$
    

pwd

  • 打印逻辑路径,使用环境中的路径,即使包含了符号链接

    pwd -L
    
  • 打印物理路径,如果目录是一个链接目录,则会打印其链接所指的物理路径

    pwd -P
    
  • 如果使用pwd没有指定参数,会使用 pwd -P

mkdir

  • 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹

  • 要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限

  • 所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)

  • 命令参数

    1. 主要用来设定权限,其中权限是数字的形式
    -m, --mode
    
    1. 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
    -p, --parents
    
  • 创建一个权限为755的文件夹 picture

    mkdir -m 755 picture
    

rm

  • rm [选项] 文件

    1. 该命令的功能为删除一个目录中的一个或多个文件或目录
    2. 也可以将某个目录及其下的所有文件及子目录均删除
    3. 对于链接文件,只是删除了链接,原有文件均保持不变
  • 命令参数

    -f, --force    忽略不存在的文件,从不给出提示。
    -i, --interactive 进行交互式删除
    -r, -R, --recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。
    
  • 对于目录,如果调用仅仅调用rm 不能删除,但可以用rm -r进行删险

  • 示例

    1. 删除所有的.log文件,并且逐一提示 :
    rm -i *.log
    
    1. 将 test2 子目录及子目录中所有档案删除,并且不用一一确认:
    rm -rf test2
    
    1. 删除以 -f 开头的文件:
    rm -- -f
    

rmdir

  • 该命令的功能是删除空目录

  • 一个目录被删除之前必须是空的

  • rm - r dir命令可代替rmdir,但是有很大危险性

move

  • mv [选项] 文件名 [目标路径|目标文件名]

    1. mv命令用于移动文件或改名
    2. 在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失
  • 命令参数

    -b :若需覆盖文件,则覆盖前先行备份
    -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
    -u :若目标文件已经存在,且 source 比较新,才会更新(update)
    -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标
    
  • 命令示例

    1. 将test.log该名为test01.txt:
    mv test.log test1.txt
    
    1. 将test1.txt移动到目录test3:
    mv test1.txt test3
    
    1. 文件移动另一目录,并改名:
    mv text01.txt ../test02/text01.log
    
    1. 将文件log1.txt,log2.txt,log3.txt移动到目录test3中:
    mv log1.txt log2.txt log3.txt test3
    
    1. 将文件file1改名为file2,如果file2已经存在,则询问是否覆盖:
    mv -i log1.txt log2.txt
    
    1. 将文件file1改名为file2,即使file2存在,也是直接覆盖掉:
    mv -f log3.txt log2.txt
    
    1. 移动目录:
    mv dir1 dir2
    
    1. 移动当前目录的全部文件到上一级目录:
    mv * ../
    
    1. 把当前目录的一个子目录里的.txt文件移动到另一个子目录里:
    mv test3/*.txt test5
    
    1. 文件被覆盖前做简单备份,前面加参数-b:
    mv log1.txt -b log2.txt
    

cp

  • 基本命令

    1. cp [选项] 源文件 目标文件
    2. 整个命令与mv命令很类似
    3. 目标文件是一个目录,会将源文件复制到该目录中。
    4. 目标文件是一个文件,会将源文件覆盖该文件。
    5. 目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。
    6. 复制目录时,注 目标目录存在与否结果是不一样的 。目标目录存在时,整个源目录被 复制到目标目录里面,目录不存在时,建立一个这样的目录
  • 命令参数:

    -p    保留原始文件的属性
    -d    若对象为"链接文件",则保留该"链接文件"的属性
    -r    递归持续复制(用于目录)
    -i    若目标文件存在则询问是否覆盖
    -a    相当于-pdr(p,d,r为上述的参数)
    
  • 示例

    1. 复制单个文件到目标目录,文件在目标文件中不存在:
    cp log.log test5
    
    1. 复制整个目录及其子文件夹
    cp -r test test2
    

touch

  • touch [选项]... 文件...

  • 1 用来修改文件时间戳;2 新建一个不存在的文件

  • linux中的文件有三种时间

      更改时间(mtime):内容修改时间(不包括权限的)
      更改权限(ctime):更改权限与属性的时间
      读取时间(atime):读取文件内容的时间
    
  • 命令参数

    -a    近修改“访问时间”(atime)
    -m    近修改“更改时间”(mtime)
    -d    同时修改atime与mtime
    -t    要修改成的时间[[CC]YY]MMDDhhmm[.ss]
    -r    把指定文档或目录的日期时间,统统设成与参考文档或目录的日期时间相同
    
  • 使用范例

    1. 创建不存在的文件
    touch a.log b.log
    
    1. 将c.log的时间修改与a.log相同
    touch -r a.log c.log
    
    1. 设定文件的时间戳,时间戳的格式为 [[CC]YY]MMDDhhmm[.ss] 由于系统的限制,早于1970年1月1日的时间是错误的
    touch -t 197001010000.00 c.log
    

其它

  • head head命令用于查看纯文本文档的前N行,格式为:head [选项] [文件]

    head -n 10 文件名      显示10行
    head -n -10 文件名     正常输出,但不显示最后的10行
    
  • tail tail命令用于查看纯文本文档的后N行,格式为:tail [选项] [文件]

    tail -n 20 文件名      显示最后20行
    tail -f               持续刷新显示的内容
    
  • od命令用于对查看特殊格式的文件,格式为:od [选项] [文件]

    -t a    默认字符
    -t c    ASCII字符
    -t o    八进制
    -t d    十进制
    -t x    十六进制
    -t f    浮点数
    
  • tr命令用于转换文本文件中的字符,格式为:tr [原始字符] [目标字符]

    cat tr.txt | tr [a-z] [A-Z]
    将tr.txt中的内容转换为大写
    
  • wc命令用于统计指定文本的行数、字数、字节数,格式为 wc [参数] 文本

    -l    只显示行数
    -w    只显示单词数
    -c    只显示字节数
    wc -l /etc/passwd
    
  • cut命令用于通过列来提取文本字符,格式为:cut [参数] 文本

    -d  分隔符    指定分隔符,默认为Tab。
    -f    指定显示的列数。
    -c    单位改为字符
    cut -d: -f1 /etc/passwd 以:为分割符来切割该文本的第一行
    
  • diff diff命令用于比较多个文本文件的差异,格式为:diff [参数] 文件

    -b    忽略空格引起的差异。
    -B    忽略空行引起的差异。
    --brief或-q    仅报告是否存在差异。
    -c    使用上下文输出格式。
    

你可能感兴趣的:(linux学习笔记-02文件相关命令)