常用命令2-文件处理命令

Posted tolearnpy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用命令2-文件处理命令相关的知识,希望对你有一定的参考价值。

技术图片

 

 

如果要创建一层的目录,就不用加-p,但是要创建2层目录,必须加-p

[root@bogon ~]# mkdir test

[root@bogon ~]# ls

111_bak          install.log          lnmp-install.log     Templates

anaconda-ks.cfg  install.log.syslog   Music                test

Desktop          lnmp                 nginx-1.10.2.tar.gz  test.php

Documents        lnmp1.0-full         Pictures             vhost.sh

Downloads        lnmp1.0-full.tar.gz  Public               Videos

[root@bogon ~]# mkdir yunhe/fenglaoshi

mkdir: cannot create directory `yunhe/fenglaoshi‘: No such file or directory

[root@bogon ~]# mkdir -p  yunhe/fenglaoshi

[root@bogon ~]# ls

111_bak          install.log          lnmp-install.log     Templates  yunhe

anaconda-ks.cfg  install.log.syslog   Music                test

Desktop          lnmp                 nginx-1.10.2.tar.gz  test.php

Documents        lnmp1.0-full         Pictures             vhost.sh

Downloads        lnmp1.0-full.tar.gz  Public               Videos

 

 技术图片

 

 

[root@bogon ~]# cd yunhe/

[root@bogon yunhe]# ls

fenglaoshi

[root@bogon yunhe]# pwd

/root/yunhe

[root@bogon yunhe]# cd fenglaoshi/

[root@bogon fenglaoshi]# ls

[root@bogon fenglaoshi]# cd /root/

[root@bogon ~]#

技术图片

 

 

cd  ~  cd都是切换到家目录

[root@bogon ~]# cd yunhe/fenglaoshi/

[root@bogon fenglaoshi]# cd ~

[root@bogon ~]# cd yunhe/fenglaoshi/

[root@bogon fenglaoshi]# cd

[root@bogon ~]# cd -

/root/yunhe/fenglaoshi

技术图片

 

 

[root@bogon ~]# cd ../usr/local/src

[root@bogon src]# cd ../usr/local/src

-bash: cd: ../usr/local/src: No such file or directory

[root@bogon src]# cd /etc/

[root@bogon etc]# cd /etc/

相对路径容易出错,所以建议大家都用绝对路径

 

使用table键进行补全。当点击一下时候不补全,说明可能有多个,再点击一下table键。

Table键不仅可以补全目录名,还可以补全命令名,按两下table键就匹配出来相应的目录

[root@bogon etc]# mk

mkdict            mkfontscale       mkfs.msdos        mkmanifest

mkdir             mkfs              mkfs.vfat         mknod

mkdosfs           mkfs.cramfs       mkhomedir_helper  mkrfc2734

mkdumprd          mkfs.ext2         mkhybrid          mksock

mke2fs            mkfs.ext3         mkinitrd          mkswap

mkfifo            mkfs.ext4         mkisofs           mktemp

mkfontdir         mkfs.ext4dev      mklost+found      mkxauth

[root@bogon etc]# mk

 技术图片

 

 技术图片

 

 

[root@bogon ~]# ls

111_bak          install.log          lnmp-install.log     Templates  yunhe

anaconda-ks.cfg  install.log.syslog   Music                test

Desktop          lnmp                 nginx-1.10.2.tar.gz  test.php

Documents        lnmp1.0-full         Pictures             vhost.sh

Downloads        lnmp1.0-full.tar.gz  Public               Videos

[root@bogon ~]# rmdir test/

[root@bogon ~]# ls

111_bak          install.log          lnmp-install.log     Templates

anaconda-ks.cfg  install.log.syslog   Music                test.php

Desktop          lnmp                 nginx-1.10.2.tar.gz  vhost.sh

Documents        lnmp1.0-full         Pictures             Videos

Downloads        lnmp1.0-full.tar.gz  Public               yunhe

[root@bogon ~]# rmdir yunhe/

rmdir: failed to remove `yunhe/‘: Directory not empty

 

就是说使用rmdir只能删除空文件夹,如果文件夹里还有文件夹,那么使用rmdir删不掉。所以rmdir很少用。

技术图片

 

 

[root@bogon ~]# touch abc

[root@bogon ~]# ls

111_bak          Downloads           lnmp1.0-full.tar.gz  Public     yunhe

abc              install.log         lnmp-install.log     Templates

anaconda-ks.cfg  install.log.syslog  Music                test.php

Desktop          lnmp                nginx-1.10.2.tar.gz  vhost.sh

Documents        lnmp1.0-full        Pictures             Videos

[root@bogon ~]# rm abc

rm: remove regular empty file `abc‘? y

[root@bogon ~]# ls

111_bak          install.log          lnmp-install.log     Templates

anaconda-ks.cfg  install.log.syslog   Music                test.php

Desktop          lnmp                 nginx-1.10.2.tar.gz  vhost.sh

Documents        lnmp1.0-full         Pictures             Videos

Downloads        lnmp1.0-full.tar.gz  Public               yunhe

使用touch创建一个文件,然后当删除abc文件的时候,会提示是否删除,但是如果里面有一万个文件,你要写一万个y,所以可以使用-f选项,强制删除

[root@bogon ~]# touch abc

[root@bogon ~]# rm -f abc

那删除目录怎么删除呢?要加上-r选项。-r是删除目录的,不加报错

[root@bogon ~]# rm yunhe

rm: cannot remove `yunhe‘: Is a directory

[root@bogon ~]# rm -rf yunhe

但是注意:rm –rf / 这条命令是删除根目录下的所有文件,千万别删,这样系统文件全没啦,系统就崩溃了。

 

[root@bogon ~]# rm -rf /tmp/*

这个相当删除tmp目录下的文件。tmp文件夹还存在。

[root@bogon ~]# rm -rf /tmp/

这个连tmp这个系统文件夹都删除了。

 

总结:rm –rf 不管删文件或目录都能删除,所以一般都用这个来删除。

技术图片

 

 

[root@bogon ~]# cp  install.log  /tmp/aaa

[root@bogon ~]# cd /tmp/

[root@bogon tmp]# ls

aaa                                    virtual-admin.g9XXs2

gedit.root.2539503469                  virtual-admin.Lntq1h

相当于把install.log复制到/tmp文件夹下,而且新名字叫做aaa。如果使用cp  install.log  /tmp/  则是全名复制,复制出来的名字和原来的名字一样。

 

复制目录要用-r,不然不起作用。

[root@bogon ~]# mkdir -p yunhe/feng

[root@bogon ~]# ls

anaconda-ks.cfg  install.log         lnmp1.0-full.tar.gz  Pictures   vhost.sh

Desktop          install.log.syslog  lnmp-install.log     Public     Videos

Documents        lnmp                Music                Templates  yunhe

Downloads        lnmp1.0-full        nginx-1.10.2.tar.gz  test.php

[root@bogon ~]# cp yunhe/ /tmp/

cp: omitting directory `yunhe/‘

[root@bogon ~]# cp -r  yunhe/ /tmp/

[root@bogon ~]# ls /tmp/

aaa                                    virtual-admin.Lntq1h

gedit.root.2539503469                  virtual-admin.nB7HlY

virtual-admin.EVInJN                   yunhe

 

ll(就是 ls -l)命令查看文件可以看到文件创建时间

[root@bogon ~]# ll /tmp/

total 19108

-rw-r--r--  1 root  root     37216 Jan 10 16:58 aaa

注意:cp -r  yunhe/ /tmp/ 复制文件时候,两个文件时间是不一样的。如果想复制的文件时间也一样,用cp -a  yunhe/ /tmp/ 包括一些隐藏属性都一弄一样。

技术图片

 

 

使用mv yunhe/ /tmp/yunhe1将yunhe目录和子文件都剪切到tmp文件夹下,而且重命名为yunhe1

[root@bogon ~]# ll

drwxr-xr-x   3 root root      4096 Jan 10 17:58 yunhe

-rw-r--r--.  1 root root     37216 Dec 28 00:57 install.log

 

[root@bogon ~]# mv yunhe/ /tmp/yunhe1

[root@bogon ~]# ll

-rw-r--r--.  1 root root     37216 Dec 28 00:57 install.log

[root@bogon ~]# ls /tmp/

virtual-admin.g9XXs2                   yunhe1

 

改名,在当前文件夹里改当前文件夹里的文件:mv yunhe yunhedata

[root@bogon tmp]# ls

  yunhe

[root@bogon tmp]# mv yunhe yunhedata

[root@bogon tmp]# ls

  yunhedata

 

注意:如何目标文件和源文件在同一个文件夹下就是改名,如果目标文件和源文件在不同一个文件夹下就是剪切

技术图片

 

 技术图片

 

 技术图片

 

 

bin文件夹里的命令是所有用户都能执行的命令。但是sbin里的命令,只有root超级管理用户才能执行的命令。

 boot 目录是启动目录,如果这个目录写满了,系统会启动不起来。

etc 目录是系统的默认配置文件保存目录

home目录是普通用户目录,root是超级用户目录

lib目录是linux的函数库文件保存位置

media  mnt 是空目录。可以后期讲的挂载光盘来使用。

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 

删了任意一个文件,不影响另一个文件。

硬链接相当于一个文件的2个不同接入点。当修改了一个文件,则另一个文件也跟着修改。

[root@bogon ~]# touch test.html

[root@bogon ~]# ls

test.html

[root@bogon ~]# ln /root/test.html /tmp/test_hard.html

[root@bogon ~]# ls /tmp/

   test_hard.html          

[root@bogon ~]# vi /root/test.html

123~

~

"test.html" 1L, 4C written

[root@bogon ~]# vi /tmp/test_hard.html

123

"/tmp/test_hard.html" 1L, 4C

 

就算是删了其中一个文件,另一个文件也能正常使用。

[root@bogon ~]# rm -rf test.html

[root@bogon ~]# vi /tmp/test_hard.html

123

技术图片

 

 

推荐使用软连接

技术图片

 

 

 

删了sbcsb不能使用。一旦删除了源文件,则软连接不能用。删了软连接,源文件能使用。修改软连接,源文件跟着改;修改源文件,软连接跟着改。硬链接和源文件的id号一样,软连接和源文件id号不一样。

[root@bogon ~]# touch feng.html

[root@bogon ~]# ln /root/feng.html /tmp/feng_hard.html

[root@bogon ~]# ln -s  /root/feng.html /tmp/feng_soft.html

 [root@bogon ~]# ll -i

280546 -rw-r--r--   2 root root         0 Jan 10 20:02 feng.html

[root@bogon ~]# ll -i /tmp/

280546 -rw-r--r--  2 root  root         0 Jan 10 20:02 feng_hard.html

659649 lrwxrwxrwx  1 root  root        15 Jan 10 20:03 feng_soft.html -> /root/feng.html

 

无论改源文件还是软连接还是硬链接,文件保持一致。

[root@bogon ~]# echo 1111 >> /root/feng.html

[root@bogon ~]# cat /tmp/feng_hard.html

1111

[root@bogon ~]# cat /tmp/feng_soft.html

1111

[root@bogon ~]# echo 2222  >> /tmp/feng_hard.html

[root@bogon ~]# cat /tmp/feng_hard.html

1111

2222

[root@bogon ~]# cat /tmp/feng_soft.html

1111

2222

[root@bogon ~]# echo 3333  >> /tmp/feng_soft.html

[root@bogon ~]# cat /tmp/feng_hard.html

1111

2222

3333

[root@bogon ~]# cat /tmp/feng_soft.html

1111

2222

3333

 

当删除源文件,硬链接没影响,但是软连接找不到源文件。

 

[root@bogon ~]# cat /tmp/feng_hard.html

1111

2222

3333

[root@bogon ~]# cat /tmp/feng_soft.html

cat: /tmp/feng_soft.html: No such file or directory

注:做软连接一定要写绝对路径

 

以上是关于常用命令2-文件处理命令的主要内容,如果未能解决你的问题,请参考以下文章

第3章 Linux常用命令_文件处理命令

004-linux常用命令-文件处理命令

三. Fasta文件处理常用命令

Linux常用命令

linux文件处理命令之chown常用方法介绍

Linux下常用文本处理命令