常用命令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
推荐使用软连接
删了sb则csb不能使用。一旦删除了源文件,则软连接不能用。删了软连接,源文件能使用。修改软连接,源文件跟着改;修改源文件,软连接跟着改。硬链接和源文件的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-文件处理命令的主要内容,如果未能解决你的问题,请参考以下文章