• 【Ubuntu】Ubuntu常用文件操作命令


    Ubuntu下修改目录权限需要先用 sudo 来获得管理员权限,格式如下:

    sudo chmod 600 ××× (只有所有者有读和写的权限)

    sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)

    sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)

    sudo chmod 666 ××× (每个人都有读和写的权限)

    sudo chmod 777 ××× (每个人都有读和写以及执行的权限) 

    其中×××指文件名(也可以是文件夹名,不过要在chmod后加-ld)。

    解释一下,其实整个命令的形式是

    sudo chmod -(代表类型)×××(所有者)×××(组用户)×××(其他用户)

    三位数的每一位都表示一个用户类型的权限设置。取值是0~7,即二进制的[000]~[111]。

    这个三位的二进制数的每一位分别表示读、写、执行权限。

    如000表示三项权限均无,而100表示只读。这样,我们就有了下面的对应:

    0 [000] 无任何权限

    4 [100] 只读权限

    6 [110] 读写权限

    7 [111] 读写执行权限

    sudo chmod 777 -R /var/www/

    掌握文件系统导航命令,用户便能够在树形目录中准确定位、自由进出。接下来,便可以开始“生产”文件了。

    dir ls cd rm

    1.touch

    touch命令用于创建一个新文件。touch命令一般语法格式为:

    touch  [ filename ]

    其中filename是文件名。如果这个文件是已有文件,就改变这个文件的最后修改日期。

    wdl@UbuntuFisher:~$ touch  Textfile.txt      //创建一个空白文件

    wdl@UbuntuFisher:~$ ls  –l  Textfile.txt     //查看这个文件,创建日期为“2007-09-20 01:07”

    -rw-r--r--  1  wdl  wdl  0  2007-09-20 01:07  Textfile.txt

    wdl@UbuntuFisher:~$ touch  Textfile.txt      //修改这个文件的时间戳

    wdl@UbuntuFisher:~$ ls  –l  Textfile.txt         //再次查看这个文件,创建日期为“2007-09-20 01:47”

    -rw-r--r--  1  wdl  wdl  0  2007-09-20 01:47  Textfile.txt

    2.file

    在Linux文件系统中,文件扩展名不总是被使用或被一致地使用。那么,如果一个文件没有扩展名,或者文件与其扩展名不符时怎么办呢?file命令的功能用于判定一个文件的类型。file命令一般语法格式为:

    file  [ filename ]

    其中filename是文件名。命令的输出将显示该文件是二进制文件、文本文件、目录文件、设备文件,还是Linux中其他类型的文件。

    wdl@UbuntuFisher:~$ file  /usr/games/banner

    banner: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, dynamically linked (uses shared libs), stripped

    wdl@UbuntuFisher:~$ file  Textfile.txt

    Textfile.txt: UTF-8 Unicode text

    以上使用file命令对两个文件/usr/games/banner和Textfile.txt的进行了文件类型判断。第一个文件为二进制可执行文件,第二个文件为UTF-8格式的文本文件。

    3.cp

    cp命令用于将给出的文件或目录复制到另一个文件或目录中。cp命令一般语法格式为:

    cp  [ -a | -d | -f | -i | -p | -r | -l | -v ]  [ SOURCE ]  [ DEST ]

    cp命令的选项很多

    -a

    该选项通常在复制目录时使用,保留链接、文件属性,并递归地复制目录,其作用等于dpr选项的组合

    -d

    复制时保留链接

    -f

    非交互模式的复制操作。覆盖已经存在的目标文件而不提示

    -i

    交互模式的复制操作,与-f选项相反。在覆盖目标文件之前将给出提示,要求用户确认,回答“Y”表示目标文件将被覆盖

    -p

    除复制源文件内容外,还将其修改时间和访问权限也同时复制

    -r

    若源文件是一个目录,cp命令将递归地复制该目录下的所有子目录和文件

    -l

    不做复制,只是链接文件

    -v

    显示详细的复制过程

    cp 命令的参数:SOURCE表示源文件,DEST表示目标文件。无论是源文件还是目标文件,既可以是普通文件,也可以是目录。cp命令支持将多个源文件复制 到目标目录中。当然,复制操作需要具有必要的权限,通常至少要对源文件具有读取权限,对目标目录或文件具有写入权限。

    wdl@UbuntuFisher:~$ cp      File_1.txt  File_2.txt

    wdl@UbuntuFisher:~$ cp  -i  File_1.txt  File_2.txt

    cp:是否覆盖'File_2.txt'? Y

    以 上命令完成了将文件File_1.txt的内容复制到File_2.txt中。在使用cp命令第一次复制File_1.txt时,创建了文件 File_2.txt。再次使用cp命令,带有“-i”选项,系统提示是否需要覆盖,回答“Y”将删除旧的File_2.txt文件,重新创建一个 File_2.txt文件(使用ls命令查看File_2.txt的创建时间就可以知道是否是新文件)。

    wdl@UbuntuFisher:~$ cp  –r  dir1/  dir2/

    以上命令完成了整个目录的复制,必须使用“-r”选项,它代表着将dir1目录中的文件、子目录及其文件,一并复制到dir2目录中。

    4.mv

    mv命令用于将文件/目录改名,或将文件/目录由源目录移动到目标目录中。mv命令一般语法格式为:

    mv  [ -i | -f | -v ]  [ SOURCE ]  [ DEST ]

    mv命令的选项很多

    -f

    非交互模式的移动操作。覆盖已经存在的目标文件而不提示

    -i

    交互模式的移动操作。在覆盖目标文件之前将给出提示,要求用户确认,回答“Y”表示目标文件将被覆盖

    -v

    显示详细的移动过程

    mv命令的参数:SOURCE表示源文件,DEST表示目标文件。无论是源文件还是目标文件,既可以是普通文件,也可以是目录。

    wdl@UbuntuFisher:~$ mv      File_1.txt  dir1/myFile.txt

    wdl@UbuntuFisher:~$ mv  -i  File_2.txt  dir1/myFile.txt

    mv:是否覆盖'dir1/myFile_1.txt'? Y

    以 上命令完成了将文件File_1.txt移动到dir1目录下,并且文件名改为myFile.txt。首先使用mv命令将File_1.txt移动到 dir1目录下。然后使用mv命令将File_2.txt移动到dir1下,mv命令带有“-i”选项,系统会提示“是否需要覆盖?”,回答“Y”将删除 旧的myFile.txt文件,重新创建一个myFile.txt文件。

    wdl@UbuntuFisher:~$ mv  –v  dir1  dir2

    'mywork' -> 'yourwork'

    以上命令完成目录的改名,使用“-v”选项,系统会给出相应提示。

    mkdir目录名创建一个目录

    5.rm

    rm命令用于在用户授权情况下,完成一个或多个文件/目录删除。rm命令可以将目录下的子目录、文件全部删除。对于链接文件,只是删除链接,原有文件保持不变。rm命令一般语法格式为:

    rm  [ -i | -f | -r | -v ]  [ DEST ]

    rm命令的选项很多

    -f

    非交互模式的删除操作,忽略不存在的文件

    -i

    交互模式的删除操作。在删除目标文件之前将给出提示,要求用户确认,回答“y”表示目标文件将被删除

    -r

    若源文件是一个目录,rm命令将递归地删除该目录下的所有子目录和文件

    -v

    显示详细的删除过程

    rm命令的参数:DEST表示目标文件,既可以是普通文件,也可以是目录。rm命令支持多文件/目录删除。删除操作需要具有必要的权限,通常至少要对目标文件/目录具有写入权限。

    wdl@UbuntuFisher:~$ rm      File_1.txt  File_2.txt

    wdl@UbuntuFisher:~$ rm  -i  File_3.txt  File_4.txt

    rm:是否删除  一般文件 File_3.txt?  Y

    rm:是否删除  一般文件 File_4.txt?  Y

    以上两条命令删除了4个文件。第一个rm命令强制删除两个文件,而没有任何提示;第二个rm命令以交互模式删除两个文件。

    假设当前目录中的dir1目录结构为:

    dir1

    dir1/dir2

    dir1/dir2/dir3

    以下命令完成删除目录dir1,从执行结果可以看出递归删除的过程。

    wdl@UbuntuFisher:~$ rm  -ri  dir1

    rm:是否进入目录  'dir1'? Y

    rm:是否进入目录  'dir1/dir2'? Y

    rm:是否删除 目录 'dir1/dir2/dir3'? Y

    rm:是否删除 目录 'dir1/dir2'? Y

    rm:是否删除 目录 'dir1'? Y

    需 要提醒的是,由于rm命令执行物理删除,一旦一个文件被删除,就不能恢复。如果以超级用户身份登录的话,用户使用rm命令可以删除整个文件系统。即使是普 通用户,执行“rm –if *”(使用通配符“*”),也可能会把当前目录中的所有内容删除。因此使用rm命令要非常小心。

    小结:

    mkdir 目录名         => 创建一个目录

    rmdir 空目录名      => 删除一个空目录

    rm 文件名 文件名   => 删除一个文件或多个文件

    rm –rf 非空目录名 => 删除一个非空目录下的一切

    touch 文件名        => 创建一个空文件

     

    重命名文件(夹) / 移动文件(夹)到指定文件夹

    执行格式: mv source destination

    Example:

    mv file1 file2    => 将文件 file1,更改文件名为 file2。

    mv file1 dir1    => 将文件 file1,移到目录 dir1下,文件名仍为 file1。

    mv dir1 dir2    => 若目录 dir2 存在,则将目录 dir1,及其所有文件和子目录,移到目录 dir2 下,新目录名称为 dir1。若目录 dir2 不存在,则将dir1,及其所有文件和子目录,更改为目录 dir2。

     

    rename命令是专用于文件重命名的,而且根据其后的例子可以看出,rename除了给单个文件重命名,还可以批量文件重命名。同时,值得注意一点的是,rename命令是带3个参数而不是很多人认为的2个参数。

    上面的例子中给出了两种文件批量重命名的用法,而实际上,rename结合通配符使用,它的功能比上面的例子所显示的更强大。基本的通配符有以下几个:

    ?    可替代单个字符

    *    可替代多个字符

    [charset]    可替代charset集中的任意单个字符

    下面以例子加以说明:

    如文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278,如果使用

    rename foo foo0 foo?

    则它只会把foo1到foo9的文件重命名为foo01到foo09,因为?通配符只能替代单个字符,所以被重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。

    再继续使用

    rename foo foo0 foo??

    则文件夹中的foo01到foo99的所有文件都被重命名为foo001到foo099,而foo100及其以后的文件名都不变,因为通配符?的使用,所以只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。

    如果再继续使用

    rename foo foo0 foo*

    则foo001到foo278的所有文件都被重命名为foo0001到foo0278,因为通配符*可替代多个字符,所以,所有以foo开头的文件都被重命名了,文件名中的foo被替换为foo0。

    我们再来看通配符[charset]的用法,还是继续在上面所说的文件夹中,执行如下命令

    rename foo0 foo foo0[2]*

    则从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。

    在使用中,三种通配符可以一起结合使用,关于具体的其它用法就只有自己不断的摸索了。

     

    强制清空回收站

    ubuntu8.04以前的版本

    sudo rm -fr $HOME/.Trash/*

    ubuntu 8.04

    sudo rm -fr $HOME/.local/share/Trash/files/*


    下面是touch命令用法

    -a                     只更改访问时间

    -c, --no-create        不创建任何文件

    -d, --date=字符串        使用<字符串>表示时间而非当前时间

    -f                     (忽略)

    -m                     只更改修改时间

    -r, --reference=文件   使用指定<文件>的时间属性而非当前时间

    -t STAMP               使用 [[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时间

    --time=WORD            使用 WORD 指定的时间:access、atime、use 都等于 -a

                               选项的效果,而 modify、mtime 等于 -m 选项的效果

    --help     显示此帮助信息并离开

    --version 显示版本信息并离开

    请注意,-d 和 -t 选项可接受不同的时间/日期格式。

  • 相关阅读:
    数据库远程备份
    20 种提升网页速度的技巧【转】
    ASP.NET页面间传值
    EXT 中文乱码解决方法
    sql INSERT之后获取主键值【转】
    asp.net cookies的使用方法
    关于AjaxPro的性能改进 【转】
    C#取真实IP地址及分析
    .NET 程序员十种必备工具
    Solution 「洛谷 P4320」道路相遇
  • 原文地址:https://www.cnblogs.com/exmyth/p/2820471.html
Copyright © 2020-2023  润新知