Linux文件操作

作者: 学习编程王同学 | 来源:发表于2018-05-12 10:46 被阅读54次

    创建、命令文件 touch

    使用touch命令可以创建一个文件:

    $ touch name.txt
    $ ls
    name.txt
    

    上面的命令创建了一个名为name.txt的文件。

    在Linux,命名文件通常使用下面的字符:

    • 小写字母,比如a, b, c ...
    • 大写字母,比如A, B, C ...
    • 数字,比如0, 1, 2 ...
    • 连字符-,不可放在文件名开头。
    • 下划线_
    • .

    下面是几条关于文件命名的约定:

    • 尽量不使用空格,可以使用下划线或者连字符,比如foo_bar
    • 重要目录尽量使用简短的名字,比如bin
    • 重要的文件使用大写字母命名,比如README

    查看文件类型 file

    使用file命令查看文件类型:

    $ file /etc/passwd /bin
    /etc/passwd: ASCII text
    /bin:        directory
    

    上面的例子中,file告诉我们,/etc/passwd是一个纯ASCII文本文件,/bin是一个目录。

    复制文件与目录 cp

    cp命令可以复制一个文件,该命令的语法为:

    cp -[ip] file1 file2

    其中file1是已有文件的名字,file2是目标文件的名字。

    首先,我们创建一个文件name.txt,并在里面写一些内容:

    $ touch name.txt
    $ echo "Hello, World!" > name.txt
    $ cat name.txt
    Hello, World!
    

    复制一份副本,这份副本的名字叫my_name.txt,命令如下:

    $ cp name.txt my_name.txt
    $ cat my_name.txt
    Hello, World!
    

    也可以使用目录的方式指定复制文件和目标文件:

    $ cp my_name.txt ~/my_name_home.txt
    $ cat ~/my_name_home.txt
    Hello, World!
    

    可见,cp将工作目录下的my_name.txt文件复制到家目录下的my_name_home.txt文件,如果该文件不存在,那么将创建该文件,如果该文件存在,那么将覆盖该文件。

    什么?覆盖文件?!很危险的!

    所以可以使用-i选项来提醒用户,加上该选项时,如果需要覆盖文件,cp会发出确认信息。

    -p选项可以使目标文件和复制文件具有相同的修改时间、访问时间和权限。

    也可以一次复制多个文件:

    $ mkdir bk
    $ cp name.txt my_name.txt bk/
    $ ls bk/
    my_name.txt  name.txt
    

    上面的命令将两个文件都复制到了bk目录下。

    如果要复制一个目录,那么需要使用-r选项:

    $ cp -r bk/ my_bk/
    

    上面的命令将bk目录复制了一份副本,这份副本的名字叫my_bk

    移动文件、重命名文件 mv

    与目录操作非常类似,mv命令可以移动或者重命名文件。

    $ mv ~/gamelist.txt ./
    $ ls gamelist.txt
    gamelist.txt
    

    上面的命令将家目录中的gamelist.txt文件移动到工作目录中。

    如果已有文件和目标文件在同一个目录中,则为重命名操作:

    $ mv gamelist.txt my_gamelist.txt
    $ ls *gamelist.txt
    my_gamelist.txt
    

    删除文件 rm

    删除文件使用rm命令。

    $ ls *name.txt
    my_name.txt  name.txt
    $ rm *name.txt
    $ ls *name.txt
    ls: cannot access '*name.txt': No such file or directory
    

    rm删除删除了所有以name.txt结尾的文件。

    使用-f选项将忽略文件权限和-i提示选项,因此,只有在确认自己在做什么时,才能使用-f选项。比如下面将快速且安静的删除bk/目录:

    $ ls -d bk
    bk
    $ rm -rf bk
    $ ls -d bk
    ls: cannot access 'bk': No such file or directory
    

    注意:Linux没有“回收站”功能,一旦被删除,就无法恢复。


    相关:

    使用tar命令可以打包和压缩文件。

    使用下面的命令可以将my_bk目录打包为bk.tar包:

    $ tar -cvf bk.tar my_bk/
    my_bk/
    my_bk/name.txt
    my_bk/my_name.txt
    

    其中:

    • -c选项:建立一个打包或压缩文件。
    • -v选项:操作过程中显示文件提示。
    • -f选项:使用档名,其后不可加其他选项。
    • bk.tar:目标文件名。
    • my_bk/:操作文件名。

    使用下面的命令即可解开上面所述的包:

    $ tar -xvf bk.tar
    my_bk/
    my_bk/name.txt
    my_bk/my_name.txt
    

    其中-x选项表示解包。

    tar命令使用-z选项使用gzip压缩包,使用-j选项使用bzip2压缩包。

    比如:

    $ tar -zcvf bk.tar.gz my_bk/
    

    表示打包后以gzip格式压缩。

    使用

    $ tar -zxvf bk.tar.gz
    

    即可解压缩和解包。

    相关文章

      网友评论

        本文标题:Linux文件操作

        本文链接:https://www.haomeiwen.com/subject/wxmcdftx.html