zoukankan      html  css  js  c++  java
  • Linux 文件和目录管理之列出、删除、复制、移动及改名

    Linux 文件和目录管理之列出、删除、复制、移动及改名

    作者:北南南北


    目录


    ++++++++++++++++++++++++++++++++++++++
    正文
    ++++++++++++++++++++++++++++++++++++++


    0、关于路径的理解;

    请参考:

    《关于Linux 文件系统中路径的理解》


    1、列文件或目录的信息工具 ls或dir;

    ls 命令可以用于显示目录的内容,也可以显示文件的属性,比如节点、文件种类、权限、拥有者、大小、创建时间等;在目前最新版本的Linux中dir和ls命令的用法是一样的;有兴趣的不仿尝试一下;


    1.1 ls 的基础语法和参数;

    语法格式:

    #ls [参数]   [目录或文件名]

    参数:

    -a 显示所有文件,包含隐藏文件;包括“.“和“..“
    -A 显示所有文件,包含隐藏文件,不包括“.“和“..“目录;
    -B 不列出文件名以~结尾的文件;
    -C 按列列出文件;
    -d 仅可以查看目录的属性参数及信息;
    -F 这个参数加上后,能给目录添加上/,给可执行文件加上*,给符号链接加上@  等等,来标记文件名,目的是让用户方便查看;
    -l 长格式输出
    -h 习惯人们可阅读的方式来显示文件或目录的大小,比如K、M或G等;
    -p 在目录的后面附加/标记;
    -r 逆序列出文件;
    -t  按文件最后访问(或修改)的时间排序,最新的排在最前面;
    -U 按原始排序,
    -L 递归显示,也就是说,当我们列某个目录的下的所有文件和目录时,能把它的下级目录的内容显示出来。
    --help  获得帮助;

    在这里,位于[]之内的都是可选的。如果您只输入ls ,就会列出用户所处当前目录的所有文件,用短格式输出,但不会列出隐藏文件。

    判断用户所处目录的命令是pwd,也就是

    [root@localhost ~]# pwd
    /root


    1.2 ls 的参数示例应用;


    1.21 列出目录下所有文件,包含或不包含隐藏文件,-a 参数及-l参数的运用;

    #ls -la [目录名]

    如果不接目录名,表示输出当前用户所处目录内的所有文件,包括隐藏文件;

    [root@localhost ~]# pwd
    /root
    [root@localhost ~]# ls -la

    列出某一目录下的的文件或目录,但不包括隐藏文件,我们只用-l参数

    #ls -l  目录

    比如:

    [root@localhost ~]# ls  -l /root/
    总计 13968
    -rw-r--r-- 1 root root         0 04-19 14:09 123.txt
    -rw------- 1 root root      1375 03-16 08:55 anaconda-ks.cfg
    -rw-r--r-- 1 root root         2 03-27 02:00 fonts.scale
    -rw-r--r-- 1 root root      5423 03-16 08:52 install.log.syslog
    -rw-r--r-- 1 root root  14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
    lrwxrwxrwx 1 root root        33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
    drwxr-xr-x 2 1000 users     4096 04-04 23:30 mkuml-2004.07.17
    -rw-r--r-- 1 root root     68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
    drwxr-xr-x 2 root root      4096 04-19 10:53 mydir
    -rw-r--r-- 1 root root     53992 03-16 08:54 myinstall.log
    -rw-r--r-- 1 root root         0 04-19 14:10 plinux.txt
    drwxr-xr-x 2 root root      4096 03-17 04:25 Public
    -rw-r--r-- 1 root root       613 03-26 18:41 upgrade.log
    -rw-r--r-- 1 root root         0 03-26 18:39 upgrade.log.syslog
    lrwxrwxrwx 1 root root         6 04-19 11:17 yourdir -> mydir/

    说明:如果以长格式输入,总共显示出八段内容:

    第一段文件种类及权限,也就是类似这样的-rw-r--r-- ,我们在前面讲到,如果在这段中,第一字符表示文件的类型,如果出现-,表示普通文件。如果是d开头的就是目录。在这个例子中,123.txt是普通文 件,而mkuml-2004.07.17就是一个目录。关于文件的种类,请参考 :
    rw-r--r--是权限位,我们在以后的教程中会讲到。
    第二段 硬链接个数(文件系增加一个硬链接,数字会增加1,默认从1开始,1表示无硬链接文件,如果是一个目录,它的默认值应该是2。目录是不能做硬链接的)
    如果我们不以长格式输出的话,可以把参数省略;
    第三段 文件或目录所占用的字节数,如果您想用K来表示,请用ls -lh /root
    第四段 最后访问日期
    第五段 最后访问时间
    第六段 文件名

    [root@localhost ~]# ls /root


    1.22 仅查看目录的属性的-d参数的运用示例;

    [root@localhost ~]# ls -ld  /etc  /boot  注:查看/etc和/boot目录的信息;

    drwxr-xr-x   4 root root  4096 04-11 16:22 /boot
    drwxr-xr-x 108 root root 12288 04-20 12:36 /etc


    1.23 查看文件或目录的inode节点,-i参数的运用;

    查看文件或目录的节点,我们要用到i参数。如果节点相同,能确认他们是相同的文件,是通过通过ln 创建的硬链接文件;链接接有何用?如果您想把一个文件复制时保持原文件或目录的节点、大小、权限以及访问(或修改)时间都和原文件一致的文件。必须通过硬 链接来实现,用cp命令是不可能实现的。

    比如:

    [root@localhost ~]# ls -li /root


    [root@localhost ~]# ls -li kernel*
    2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
    2408270 lrwxrwxrwx 1 root root       33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
    2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
    2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm

    我们看一下kernel00.rpm 、kernel.rpm 和 kernel-2.6.15-1.2025_FC5.i686.rpm 是不是节点相同??他们的大小是不是一样,他们的访问日期是不是一样?只是他们的文件名不一样。文件名不一样没有关系,这能证明其中两个文件是由另一个文 件通过ln 创建而成。

    您可以尝试着用cp 把 kernel-2.6.15-1.2025_FC5.i686.rpm 复制为kernel002.rpm ,看看能不能保持节点相同?

    [root@localhost ~]# ls -li kernel*
    2408272 -rw-r--r-- 1 root root 14087155 04-19 16:05 kernel002.rpm
    2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
    2408270 lrwxrwxrwx 1 root root       33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
    2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
    2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm

    不是是kernel002.rpm 的节点和 kernel-2.6.15-1.2025_FC5.i686.rpm 不一样了?


    1.24 关于排序的参数的应用;

    ls 显示目录的内容时,会将文件按a到z的字母顺序显示,优先级如下;

    数字 
    a-z 
    A-Z

    也就是说如果不加任何排序的参数,文件名第一个字母是数字的,将优先显示;其次才是A-Z,然后才是a-z;下面是几个排序的参数,大家练习一下就知道了;

    在文件的大小排序上,我们要用到-S参数;
    如果是逆序排序时,我们要用到-r参数;
    按最后访问的时候排序,要用到-t参数;
    根据扩展名进行排序,要用到参数 -X ;

    举例

    [root@localhost ~]# ls
    123.txt          fonts.scale         kernel                           myinstall.log  upgrade.log
    anaconda-ks.cfg  install.log.syslog  mkuml-2004.07.17-ananas.tar.bz2  plinux.txt     upgrade.log.syslog
    [root@localhost ~]# ls -lS /root
    [root@localhost ~]# ls -lS
    总计 180
    -rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
    -rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
    -rw-r--r-- 1 root root  5423 03-16 08:52 install.log.syslog
    drwxr-xr-x 2 root root  4096 04-19 20:04 kernel
    -rw------- 1 root root  1375 04-19 15:04 anaconda-ks.cfg
    -rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
    -rw-r--r-- 1 root root    21 04-19 15:06 123.txt
    -rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale
    -rw-r--r-- 1 root root     0 04-19 14:10 plinux.txt
    -rw-r--r-- 1 root root     0 03-26 18:39 upgrade.log.syslog

    举例:

    [root@localhost ~]# ls -lr
    总计 180
    -rw-r--r-- 1 root root     0 03-26 18:39 upgrade.log.syslog
    -rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
    -rw-r--r-- 1 root root     0 04-19 14:10 plinux.txt
    -rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
    -rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
    drwxr-xr-x 2 root root  4096 04-19 20:04 kernel
    -rw-r--r-- 1 root root  5423 03-16 08:52 install.log.syslog
    -rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale
    -rw------- 1 root root  1375 04-19 15:04 anaconda-ks.cfg
    -rw-r--r-- 1 root root    21 04-19 15:06 123.txt
    [root@localhost ~]# ls -lt
    总计 180
    drwxr-xr-x 2 root root  4096 04-19 20:04 kernel
    -rw-r--r-- 1 root root    21 04-19 15:06 123.txt
    -rw------- 1 root root  1375 04-19 15:04 anaconda-ks.cfg
    -rw-r--r-- 1 root root     0 04-19 14:10 plinux.txt
    -rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
    -rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale
    -rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
    -rw-r--r-- 1 root root     0 03-26 18:39 upgrade.log.syslog
    -rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
    -rw-r--r-- 1 root root  5423 03-16 08:52 install.log.syslog


    1.25 递归显示目录的文件,-R参数的应用;

    递归显示目录下的所有文件,如果该目录下有子目录,也会把子目录的文件一并显示出来。

    比如

    [root@localhost ~]# ls -lR /

    注:也就是把Linux下/根目录下的所有文件显示出来,但不会显示隐藏文件。自己试着输入上面的命令就知道怎么回事了。


    1.26 关于ls 输出内容在终端显示颜色的参数 --color;

    在一般的情况下,ls输出内容是有颜色的,比如目录是蓝色,压缩文件是红字的显示。如果没有颜色,可以加上参数。当然也可以去掉颜色。

    --color=never  表示输出输出没有彩色
    --color=auto  表示自动
    --color=always 表示输出内容有彩色

    举例:

    [root@localhost ~]# ls -la --color=never
    [root@localhost ~]# ls -la --color=any
    [root@localhost ~]# ls -la --color=always

    如果您的终端或控制台输出的内容没有颜色,可以自己来定义。在当前用户的家目录下的.bashrc 中加入下面的一行;

    alias ls="ls --color=always"


    1.27 ls的-F参数的示例;

    [root@localhost ~]# ls -F
    crondw.sh*  kernel/  mkuml-2004.07.17-ananas.tar.bz2  openQreadme.txt@  sun.txt  upgrade.log  youdir/

    [root@localhost ~]# ls -lF
    总计 92
    -rwxr-xr-x 1 root root     0 04-20 14:18 crondw.sh*
    drwxr-xr-x 3 root root  4096 04-20 14:17 kernel/
    -rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
    lrwxrwxrwx 1 root root     7 04-20 14:18 openQreadme.txt -> sun.txt
    -rw-r--r-- 1 root root    11 04-20 14:17 sun.txt
    -rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
    drwxr-xr-x 6 root root  4096 04-20 14:17 youdir/


    1.3 通配符在ls命令中的应用;

    * 代表0个或多个字符
    []内部包括任何字符
    ? 任何单个字符

    举例:

    比如我们显示以k开头的所有文件,在/root目录中的;

    [root@localhost ~]# ls /root/k*
    kernel002.rpm  kernel00.rpm  kernel1.rpm  kernel-2.6.15-1.2025_FC5.i686.rpm  kernel.rpm

    我们显示以数字开头的所有文件;

    [root@localhost ~]# ls [0-9]*
    123.txt  234.txt  2kexe.txt  6mns.doc

    下面是一个?通配符的示例:

    [root@localhost ~]# ls *.t?t
    123.txt  234.txt  2kexe.txt  333.tot  plinux.txt


    1.4 获得ls 的帮助;

    ls 的用法比较简单,至于更详细的参考,还是查man和help。遇到不会的,就查手册,我也是这么做的。

    [root@localhost ~]# ls --help
    [root@localhost ~]# man ls
    [root@localhost ~]# info ls


    2、移动文件或目录的命令 mv ;

    mv 命令是用来移动文件或目录的;有以下几种格式;

    #mv file1 file2  注:把file1移动到file2,如果file2不存在,则创建file2文件名;
    #mv file1 dir 注:把一个文件移动到一个事实存在的目录;
    #mv dir1 dir2   移动目录dir1 到 dir2 ,如果dir2不存在,则创建它;
    #mv file1 file2 file3 ... ...  dir   移动file1、file2、file3等多个文件到dir目录中;
    #mv dir1 dir2 ... ... dirn   注:移动目录dir1和dir2等多个目录到dirn目录中

    参数-i ,表示人机交互模式;提示警告信息;

    举例:

    [root@localhost ~]# mv -i 123.txt  234.txt
    mv:是否覆盖“234.txt”? y 注:要在这里输入y,表示允许覆盖234.txt文件;如果是n,请示不允许;

    mv 也能和通配符结合一起使用,这样能把相似特征的文件移动到某处;

    * 代表0个或多个字符
    []内部包括任何字符
    ? 任何单个字符


    举例:比如移动以数字开头的文件或目录到 root目录下的tmp目录中;

    [root@localhost ~]# pwd
    /root
    [root@localhost ~]# mv [0-9]* tmp/
    [root@localhost ~]# ls -lh tmp/
    总计 4.0K
    -rw-r--r-- 1 root root 21 04-19 15:06 234.txt
    -rw-r--r-- 1 root root  0 04-19 22:23 2kexe.txt
    -rw-r--r-- 1 root root  0 04-19 22:25 333.tot
    -rw-r--r-- 1 root root  0 04-19 22:23 6mns.doc


    3、文件或目录的复制工具cp ;


    3.1 cp 的语法和参数

    #cp  [参数选项]   源文件或目录      目标文件或目录

    注:参数是可选的,常用参数比如 -r,-R,-p,-i ;

    参数说明(部份)

    -a 等同于-dpR参数一起使用;在复制过程中尽可能保留源文件或目录的属性;
    -b 给被覆盖的文件做备份。比如我们把file1 复制到file2时,如果file2存在,我们把file2覆盖掉,用这个参数就能同时生成一个file2~的文件,注意文件名后有~结尾
    -d 不间接引用符号链接,保持源文件和目标文件之间的硬链接关系;
    -f 删除已存在的目标文件;
    -i 覆盖已存在的目标文件之前给出警告提示,这是人机交互的选项;
    -l 建立文件硬链接,而不是复制;
    -p 保存源文件或目录的最后修改时间和模式,比如要保持目标目录或文件的属主、组、权限和最后访问(或修改)时间;
    -R 复制目录时,包括淅目录下所有的子目录和文件;
    -s 建立源文件的符号链接,而不是复制源文件。源文件名必须用绝对路径;
    -r 复制目录时,包括淅目录下所有的子目录和文件;-r选项不同于-R之处在于 尝试打开目的地文件前先删除已存在的目的地文件
    -i 人机交互模式,显法覆盖已存在的文件或目录的警告信息;
    -v 在复制之前,输出每个文件的名字;
    --help 查看帮助 ;


    3.2 示例说明cp应用;


    3.21 参数-i的示例;

    [root@localhost ~]# ls
    anaconda-ks.cfg  install.log.syslog  Kernel.rpm                       mydir       Plist  upgrade.log         youdir
    fonts.scale      kernel              mkuml-2004.07.17-ananas.tar.bz2  plinux.txt  sun    upgrade.log.syslog
    [root@localhost ~]# pwd
    /root

    [root@localhost ~]# cp  -i Kernel.rpm Plist
    cp:是否覆盖“Plist”? y

    注:人机交互在数-i的运用;如果源文件复制到目标文件,如果目标文件存在,则提示警告;


    3.22 参数-a的示例及说明;

    把源目录复制到另外的一个目标,相当于克隆了一个目录,源目录和目标目录在用户组、权限及修改或访问时间保持一致;

    [root@localhost ~]# cp -a mydir youdir

    注:复制目录mydir 到youdir ,如果yourdir目录不存在,则创建。并且把mydir中所有的文件下级子目录都复制到 yourdir目录中。也就是说mydir目录的文件和youdir是一样的。-a 参数等同于-dpR,并且源目录和目标目录的属性(用户组、权限、最后访问及修改时间)都一致;


    3.23 参数-b的示例应用;

    把源文件复制为目标文件;并且尝试-b参数的运用;

    [root@localhost ~]# cp fonts.scale fonts.dir  把一个文件复制为另一个文件;

    [root@localhost ~]# cp -bi fonts.scale fonts.dir

    cp:是否覆盖“fonts.dir”? y  注:因为用了-i 参数,如果目标文件存在,则报警提示;

    [root@localhost ~]# ls -lh fonts.*
    -rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir
    -rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir~  注:-b参数运用的效果就是生成已存在目标文件的覆盖之前备份。
    -rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale


    3.24 把多个文件复制到目录目录中示例;

    比如我们把位于用户当前目录下的fonts.dir、Kernel.rpm和Plist文件,复制到当前用户所处的目录下的sun目录中;

    [root@localhost ~]# pwd  注:判断用户所处的位置,也就是所处的目录;
    /root

    [root@localhost ~]# mv fonts.dir Kernel.rpm  Plist  sun/
    [root@localhost ~]# ls sun/
    fonts.dir  Kernel.rpm  Plist

    注:如果您想把多个目录或文件复制到目标目录时,您得加参数 -R


    3.25 复制目录时-R参数的应用;

    复制一个目录到另一个目录时,我们要用到 -r或-R 或-a , 如果目标目录不存在,则创建它,如果目标目录存在,则复制源目录到目标目录之下;看看-a和-R或-r有什么不同?尝试看看;

    比如我们在用户当前操作的目录中,有mydir目录,我们想把mydir复制为medir(在复制之前medir是不存在的)。

    [root@localhost ~]# cp -R mydir medir 注:如果medir目录不存在,则创建medir目录,并且medir目录中的内容和mydir中的一样;

    如果您把-R参数换成-a参数,会有什么不同?看看前面的例子所说的;


    4、 目录创建工具mkdir和删除空目录工具rmdir;


    4.1 mkdir 是目录创建工具;


    4.11 mkdir语法格式及参数;

    语法格式

    #mkdir [参数选项]  目录

    参数常用的如下:

    -m 在创建目录时要授其权限,要和chmod的授权格式;
    -p 如果中间目录不存在,则创建它


    4.12 参数 -p 的应用示例

    我们要创建一个目录linuxsir,并且linuxsir目录下包含子目录sirdoc,sirdoc目录下还有 redhat目录;

    [root@localhost ~]# mkdir -p  linuxsir/sirdoc/redhat

    举例: -m 参数的应用示例;

    我们以不同的权限来创建目录,然后查看我们所创建目录的属性;这要涉及到chown 来改变目录的权限的格式。我们会在以后讲到chown改变目录或文件的权限。在这里不同的是,在目录创建之时就给其授权了;

    [root@localhost ~]# mkdir -m  644 sundir
    [root@localhost ~]# mkdir -m 755 moondir
    [root@localhost ~]# mkdir -m 000 beinandir
    [root@localhost ~]# ls -ld sundir moondir beinandir
    d--------- 2 root root 4096 04-20 11:01 beinandir
    drwxr-xr-x 2 root root 4096 04-20 11:01 moondir
    drw-r--r-- 2 root root 4096 04-20 11:00 sundir


    4.2 删除空目录工具 rmdir 和rm ;

    rmdir 是用来删除空目录用的,如果目录中有文件或子目录,必须先删除文件或子目录,其语法格式如下:

    #rmdir [参数]  目录


    rmdir 参数常用的有:

    -p 删除目录时是一级一级的时行的,值得注意的是,首先从最里面的目录开始。下面是一个例子;

    [root@localhost ~]# mkdir -p  linuxsir/sirdoc/redhat/ 

    注:首先在当前目录下创建linuxsir目录,他的子目录是sirdoc,sirdoc内又有一个子目录redhat

    [root@localhost ~]# rmdir -p linuxsir/sirdoc/redhat/  注:删除linuxsir目录,要用到参数-p
    [root@localhost ~]# ls linuxsir  注:检查一下是不是还有这个目录?
    ls: linuxsir: 没有那个文件或目录

    rmdir 所删除的目录,每级目录中都是空的,没有其它的文件。如果任何一级的目录有文件,也不能删除。这时您要用到rm -rf 命令强制删除。不过用rm -rf 删除时有点不安全,还是用rf -ri 比较好一点,因为在删除的时候,会有警告提示。这对于安全操作来说是很重要的;

    [root@localhost ~]# ls -lh sun/  注:这是sun目录,里面有内容;
    总计 28K
    -rw------- 1 root root 1.4K 04-19 15:04 anaconda-ks.cfg
    -rw-r--r-- 1 root root    2 04-20 10:24 fonts.dir
    -rw-r--r-- 1 root root    2 03-27 02:00 fonts.scale
    -rw-r--r-- 1 root root 5.3K 03-16 08:52 install.log.syslog
    -rw-r--r-- 1 root root    0 04-19 20:44 Kernel.rpm
    -rw-r--r-- 1 root root    0 04-20 10:20 Plist
    [root@localhost ~]# rmdir sun/  注:我们尝试用rmdir来删除,
    rmdir: sun/: 目录非空  

    [root@localhost ~]# rm -rf sun/  注:强制用rm -rf 来删除;

    [root@localhost ~]# ls sun    注:检查是否删除,删除成功;
    ls: sun: 没有那个文件或目录


    5、创建一个空文件的工具:用 touch、echo、cat等工具;

    有时我们为了方便,可能在控制台或终端下创建一个不存在的空文件,然后我们再用编辑器来编辑它;创建空文件有时还有点用。说说也无妨。我们在这里用 touch、ech0及cat 工具。其实这些工具,创建文件只是他们的一个小小的功能,我们以后再介绍这些工具,先说他们创建文件的功能。

    注意:创建这些文件,在我们操作创建文件之前,这些文件在用户当前操作目录下是不存在的,我们在这里只是创建一个新的文件名,并且它里面没有任何空容的;

    [root@localhost ~]# ls 123456.txt 654321.txt 98765.txt
    ls: 123456.txt: 没有那个文件或目录
    ls: 654321.txt: 没有那个文件或目录
    ls: 98765.txt: 没有那个文件或目录
    [root@localhost ~]# echo > 123456.txt  注:用ech0 来创建,在创建之前在此操作目录下不存不123456.txt文件;
    [root@localhost ~]# ls 123456.txt     注:查看一下看有没有生成?
    123456.txt
    [root@localhost ~]# touch 654321.txt  注:用 touch 来创建,在创建之前在此操作目录下不存在654321.txt文件;
    [root@localhost ~]# ls 654321.txt  注:查看一下看有没有生成?
    654321.txt
    [root@localhost ~]# cat > 98765.txt  注:用ech0 来创建,在创建之前在此操作目录下不存在98765.txt 文件;然后按ctrl+c组合键退出;

    [root@localhost ~]# ls 98765.txt   注:查看一下看有没有生成?
    98765.txt


    6、删除文件工具rm;

    rm 是用来删除一个或多个文件的工具,并且能用于删除非空目录。我们前面提到了可以加参数-rf 就可以强制删除一个非空目录。

    rm的语法格式;

    #rm [参数选项] file1 file2 ... ...
    #rm  [参数选项]  dir1 dir2 dir3 ... ...

    rm 常用参数:

    -f  不显示警告或提示信息就删除,用的时候需要小心;
    -i  删除文件时,显示警告信息,要多用,这样比较安全;根据提示,输入y就表示删除,输入n,请示不删除;
    -r或-R  表示可以删除整个目录(包括子目录及所有文件),要小心用;
    [root@localhost ~]# rm -i 123.sh  注:这是删除一个文件,用-i参数的示例,有警告提示;

    rm:是否删除一般空文件“123.sh”? y

    比如我们想删除mydir目录及所有下级目录和文件,要有提示的警告信息,可以用-r参数和-i参数的组合;如果您想终止rm命令,请按ctrl+c组合健退出rm;

    [root@localhost ~]# rm -ri mydir/

    rm:是否进入目录“mydir/”? y
    rm:是否进入目录“mydir//youdir”? y
    rm:是否删除一般文件“mydir//youdir/enteruml.sh”?

    如果您想没有任何警告信息的删除mydir目录下的所有文件及子目录,可以用-r和-f参数的组合;

    [root@localhost ~]# rm -rf mydir


    7、修改文件名工具 mv

    mv 可以移动一个文件(或目录)到另一个文件(或目录),如果文件(或目录)不存在,则创建它。其实mv 这个过程也可以理解为改名过程,所以说mv工具能修改文件名和目录名。

    #mv 原文件名或目录名  新文件或目录名

    注意:新文件名或目录名应该不能与现有文件名(或目录名)同名。

    举例:

    [root@localhost ~]# ls
    crondw.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

    [root@localhost ~]# mv crondw.sh 123.sh  注:移动crondw.sh 到123.sh ,其实就是把文件名改为了123.sh

    [root@localhost ~]# ls
    123.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

    再看一例mv 修改目录的。当然mv是把文件(或目录)从一个地方移到另一个地方。如果另一地方没有和源文件(或目录)同名的,就创建。这也相当于改名;

    [root@localhost ~]# ls
    123.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

    [root@localhost ~]# mv kernel/ kernelBak

    [root@localhost ~]# ls
    123.sh  kernelBak  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir


    8、关于本文;

    本文是为新手上路而写的,也是基础文档之一,如果您认为有用,那就送给您了。呵~~~~~~请各路大侠多多指正吧,谢谢~
    今天值得高兴的事是我终于能从文件系统写到文件方面的内容了,也学到了不少东西,想来想去有点不容易~~~接着加油;


    9、后记;

    本文是文件管理一部份,包括了文件(或目录)的查看工具ls、复制cp、移动mv;目录的创建mkdir,目录的删除rm或rmdir;还有创建空文件的几个工具;mv的改名用途;文件的删除rm;

    说是文件和目录的管理,没有写路径方面的知识,好象是少点东西。本来是想先写路径和目录方面的内容了。后来一想一篇容不下,先把看上去很乱的东西写一写。然后再写路径的内容。


    10、参考文档;

    相当工具的man或help;


    11、相关文档;

    《关于Linux 文件系统中路径的理解》
    《Linux 文件种类和文件类型简述》
    《简述Linux 文件系统的目录结构》
  • 相关阅读:
    彻底理解c++的隐式类型转换
    golang1.16新特性速览
    配置CLion管理Qt项目国际化支持
    一道有趣的golang排错题
    计算机视觉 / 二维空间中,如何判断点在不在某个封闭图形内?
    如何使用google搜索?
    shuffle实现 / 洗牌算法
    Linux 命令行界面下,好玩的东西
    LAB5 Shell、外存管理与操作
    LAB6 网络通信 、 网卡驱动
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400469.html
Copyright © 2011-2022 走看看