zoukankan      html  css  js  c++  java
  • 02、操作文件

    一、创建文件

    1.cat创建一个新的文件

      命令:cat>>filename

      使用cat创建文件时,以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容。输入结束时按Ctrl+d退出并保存文件。


     

    2.touch命令有两个功能:

      一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;

      二是用来创建新的空文件。

    语法:touch(选项)(参数)

    选项

    -a:或--time=atime或--time=access或--time=use  只更改存取时间;
    -c:或--no-create  不建立任何文件;
    -d:<时间日期> 使用指定的日期时间,而非现在的时间;
    -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
    -m:或--time=mtime或--time=modify  只更该变动时间;
    -r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
    -t:<日期时间>  使用指定的日期时间,而非现在的时间;
    --version:显示版本信息。

    参数

    文件:指定要设置时间属性的文件列表。

    实例

      touch ex2

    在当前目录下建立一个空文件ex2,然后,利用ls -l命令可以发现文件ex2的大小为0,表示它是空文件。


     

      3.创建文件夹

    mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 

    注意:在创建文件时,不要把所有的文件都存放在主目录中,可以创建子目录,通过它们来更有效地组织文件。最好采用前后一致的命名方式来区分文件和目录。例如,目录名可以以大写字母开头,这样,在目录列表中目录名就出现在前面。

    在一个子目录中应包含类型相似或用途相近的文件。例如,应建立一个子目录,它包含所有的数据库文件,另有一个子目录应包含电子表格文件,还有一个子目录应包含文字处理文档,等等。目录也是文件,它们和普通文件一样遵循相同的命名规则,并且利用全路径可以唯一地指定一个目录。

    语法

    mkdir (选项)(参数)

    选项

    -Z:设置安全上下文,当使用SELinux时有效;
    -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
    -p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
    --version 显示版本信息。

    参数

    目录:指定要创建的目录列表,多个目录之间用空格隔开。

    实例

    在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问

    mkdir -m 700 /usr/meng/test

    在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问

    mkdir -p-m 750 bin/os_1

     

    二、拷贝文件

    1、cp命令  

        cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

    语法

      cp(选项)(参数)

    选项

    -a:此参数的效果和同时指定"-dpR"参数相同;
    -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
    -f:强行复制文件或目录,不论目标文件或目录是否已存在;
    -i:覆盖既有文件之前先询问用户;
    -l:对源文件建立硬连接,而非复制文件;
    -p:保留源文件或目录的属性;
    -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
    -s:对源文件建立符号连接,而非复制文件;
    -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
    -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
    -b:覆盖已存在的文件目标前将目标文件备份;
    -v:详细显示命令执行的操作。

    参数

        • 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
        • 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

      实例

    如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:

    cp ../mary/homework/assign .

    所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

    将文件file复制到目录/usr/men/tmp下,并改名为file1

    cp file /usr/men/tmp/file1

    将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh

    cp -r /usr/men /usr/zh

    交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh

    cp -i /usr/men m*.c /usr/zh

    我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:

    cp aaa/* /bbb
    复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
    
    cp -r aaa/* /bbb
    这次依然需要按Y来确认操作,但是没有忽略子目录。
    
    cp -r -a aaa/* /bbb
    依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
    
    cp -r -a aaa/* /bbb
    成功,没有提示按Y、传递了目录属性、没有略过目录。

     

    mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

    mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

      1. 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
      2. 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

    注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

    语法

    mv(选项)(参数)

    选项

    --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
    -b:当文件存在时,覆盖前,为其创建一个备份;
    -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
    -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
    --strip-trailing-slashes:删除源文件中的斜杠“/”;
    -S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
    --target-directory=<目录>:指定源文件要移动到目标目录;
    -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

    参数

      • 源文件:源文件列表。
      • 目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。

    实例

    将文件ex3改名为new1

        mv ex3 new1

    将目录/usr/men中的所有文件移到当前目录(用.表示)中:

        mv /usr/men/* .


    
    

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    【DWT笔记】基于小波变换的降噪技术
    【DWT笔记】傅里叶变换与小波变换
    Matlab命令——目录操作(windows&Linux)
    【DCT笔记】DCT变换、DCT反变换、分块DCT变换
    JSOI2018 防御网络
    NOI2018 屠龙勇士
    CRT&EXCRT学习笔记
    CF662C Binary Table
    HNOI2017 礼物
    ZJOI2014 力
  • 原文地址:https://www.cnblogs.com/szl6/p/9460573.html
Copyright © 2011-2022 走看看