【转】 Linux常用文件操作命令
1 改变目录
要进入相应的目录我们可以使用Linux下的改变目录命令cd (ChangeDirectory)。
下面我要进入到/tmp目录下,如下操作:
[root@bestlinux ~]# cd /tmp/ |
你会看到有地方变了,是的,就是在PS1那个位置有所改变,由原来的“~”变为了“tmp”。那么 ~ 又是什么意思呢?其实 ~表示的就是家目录的意思,既然表示的是家目录的意思,那如果你用cd ~会出现什么样的结果呢?下面咱们就来看一下。
[root@bestlinux tmp]# cd ~ |
你会看到变了,又变到了原来的位置了,这就是你的家目录。
在这里再给大家多说一点,你用的是哪个用户你用 cd ~ 就会进入到哪个目录下。因为当前咱们是以root的身份进入的,这时用cd ~进入的目录就是
/root 目录下。还有一个就是这里面的 # ,通常情况下 # 就示的就是超级管理员,如果这个位置是
$符号的话,通常情况下表示的是当前登陆的用户是普通用户。这只是通常情况下,其它情况下就不一定了。
那么我把目录改来改去的不知道当前目录在什么地方了,怎么办啊?
2查看当前路径
当你改变目录后不知道当前所在的路径了,我们可以用pwd命令来查看当前的路径。这个命令就是用来查看当前路径的,没有其它的作用。如下所示:
[root@bestlinux network-scripts]# pwd |
我知道了当前路径了,那么怎样创建一个文件夹呢?
3创建目录
在指定目录下要创建一文件夹的话可以用mkdir 命令。比如我要在 /tmp下创建一个test的文件夹。我可以这样去做。
[root@bestlinux ~]# mkdir /tmp/test |
|
这时你用ls /tmp 可以看到在 /tmp目录下创建了一个名为test的文件夹。同样的也可以在当前目录下创建一指定的文件夹,这时直接使用mkdir命令后面加相应的文件名就可以了。
我可以创建目录了,那么我怎么去创建一个文件呢?
4创建文件
创建文件的命令可以说有很多,在这里咱们就先说一下比较简单的命令 touch 。我要在 /tmp/创建一个名为a.txt的文件。如下所示:
[root@bestlinux ~]# touch /tmp/a.txt |
创建了文件或文件夹后怎样删除呢?下面咱们来一起看一下。
5删除文件或文件夹
删除文件或文件夹均可以用同一个命令来操作都可以用 rm命令。如我要删除一文件夹 /tmp/a.txt 文件,我可以这样去做。
[root@bestlinux ~]# rm /tmp/a.txt |
在删除的过程中,你会看到中间有一段话“rm:是否删除一般空文件‘/tmp/a.txt’?”,这是确认的一句话,这时输入字符“y”回车就可以了。
同样的删除一个文件夹,咱们来看一下操作,同样的我还是删除 /tmp/test 文件夹。如下操作一起来注意看一下。
[root@bestlinux ~]# rm /tmp/test/ |
你会看到这样的一个信息“rm: 无法删除目录‘/tmp/test/’:是一个目录”,也就是说没有删除掉这个文件,在操作过程中出现了问题,一起来看一下问题所在。咱们一起来 man 一下这个rm命令,查看一下他的操作方式。
[root@bestlinux ~]# man rm |
从中你可以看到这样一行,“-r, -R, --recursive remove the contents ofdirectories recursively”,它的意思就是说可以删除文件夹的意思吧。好咱们就在后面加上 –r 的参数。
[root@bestlinux ~]# rm -r /tmp/test/ |
这时你会看到“rm:是否删除目录‘/tmp/test/’?”,就是确认的意思,输入y就可以将指定的内容删除掉了。
那有没有可以不用确认就可以直接将指定的文件和文件夹删除掉呢?有的,下面看一下我下面的操作。
[root@bestlinux ~]# mkdir/tmp/dir //在 /tmp 下创建dir目录 [root@bestlinux ~]# touch/tmp/dir/a.txt //在 /tmp/dir/ 创建a.txt文件 [root@bestlinux ~]# rm -fr/tmp/dir/ //删除掉/tmp/dir和里面的内容 |
这样你会看到没有任何的提示信息。
6复制文件
复制文件信息是我们最常用的操作了,在Linux里面也有一个比较好用的命令cp命令。cp命令的格式和前的咱们所提到的命令格式是类似的,这个操作并不只是简单的指定一个文件就可以了,因为复制要有源文件,也要有目标文件,所以这里要有至少二个param 。格式如下:
cp [参数] 源文件 目标文件 |
之所以前面没有说命令格式,是因为前面命令里面只有一个参数,所以没有什么可以说的,现在咱们看到这个命令至少要有两个参数了。下面我就复制/root/ 目录下的 a.txt 文件到 /tmp 下。如下操作:
[root@bestlinux ~]# cp /root/a.txt /tmp/ |
您会看到这时没有任何的信息显示出来,重新返回到了命令提示符,这时就证明 cp 命令已经成功完成了。然后你再用 ls –l查看一下 /tm/a.txt 你会看到这个文件已经存在了。
那么我想要复制文件夹呢?也是一样的,不过你还记不记得 rm 命令啊,在用 rm 命令删除文件夹的时候我们用了一个 –r 的参数,同样的cp
命令也是一样的,不信你可以自己用 man 查看一下。好下面咱们就来复制文件夹来看一下。首先我在 /root 目录下我创建一个名为dir
的文件夹,在文件夹里面创建一个名为 test.txt 的文件。然后我再把 dir 文件夹复制到 /tmp目录中。如下操作:
[root@bestlinux ~]# mkdirdir //在当前目录下创建dir 文件夹 [root@bestlinux ~]# touchdir/test.txt //在dir目录下创建test.txt文件 [root@bestlinux ~]# cp -r dir//tmp/ //复制dir目录到/tmp下 [root@bestlinux ~]# ls -l/tmp/dir/ //查看/tmp下的内容是不是有dir目录 |
这就是怎样去复制文件夹和文件夹中的内容。那么如果我想复制当前目录下的所有文件到指定目录下呢?这时我们就要用到通配符了。下面我们来看一下通配符。
* :表示所有文件和文件夹
?:表示一个字符
知道了上面这二个通配符了就可以做相应的一些操作了。下面我要复制刚才咱们创建的 dir 目录下的所有内容到 /tmp下。dir里面是咱们刚才创建的 a.txt 文件,这时复制过去后在 /tmp 下你会看到 a.txt 文件。如下操作:
[root@bestlinux ~]# cp dir/* /tmp/ [root@bestlinux ~]# ls /tmp/a.txt -l |
这样用通配符也可以完成相关的操作。
7移动和改名
如果想要移动文件的话可以用 mv命令格式如下:
mv [参数] 源文件 目地文件 |
这个操作和cp命令的操作是类似的。
例子:将 /root 下的 dir 移动到 /home下。如下操作:
[root@bestlinux ~]# mv dir/ /home/ [root@bestlinux ~]# ls -l /home/ |
这样当前目录下的 dir 文件被移动到了 /home 下。
那么改名的格式也是类似的,下面我就把 /home/ 下的dir目录改名为directory。如下操作:
[root@bestlinux ~]# cd /home/ [root@bestlinux home]# mv dir/ directory [root@bestlinux home]# ls -l |
这样 dir 目录就改名为 directory名了。
8查找命令
在我创建了那么多的文件中一不小心忘记放到哪了,这个时候我们就想着要查找一下了,这时我们有这样一个命令叫find 。可以用于查找工作。格式如下:
find [路径] [参数] 参数说明: 1. 时间: -atimen :在 n*24小时内被 access 即存取过的文件列出来! -ctimen :在 n*24小时内被 changed 即改变、新增的文件或目录印出 -mtimen :在 n*24小时内被 modified 即修改过的文件印出 -newer file :比 file 还要新的文件就列出来!
-gidn :寻找 群组 ID 为 n 的文件 |
如下例:
[root@bestlinux ~]# find / -nametesting //查找名为 testing 的文件 [root@bestlinux ~]# find / -name'test*' //查找以test开头的文件 [root@bestlinux ~]# find . -ctime1 //查找当前目录下一天内新增的文件 [root@bestlinux ~]# find /home -usertest //查找 /home下拥有者为 test 的文件 |
有些同学可能有另外的一个想法,我想查找ls命令在什么地方,可以,你可以用find命令去找,不过用find命令查找起来时间比较长,可以用另外一个命令which命令。如下:
[root@bestlinux ~]# which ls |
这时你会看到ls命令在/bin/目录里面。用起来很方便吧。
9查看文件内容
对于一个文本文件,我们怎么去查看其中的内容呢?我们可以用到查看文本内容的命令cat 命令,除了这一个还有 tail 、head 命令。
[root@bestlinux ~]# cat /etc/services |
# /etc/services: binkp 24554/udp # Binkley # Local services |
同样的还可以用 tail 和 head 这两个命令来查看头和尾一些数据信息。格式如下:
[root@bestlinux ~]# head /etc/services [root@bestlinux ~]# tail /etc/services |
结果会显示 /etc/services 的前十行和后十行内容。 |
10 管道
在用 cat命令显示文件内容的时候你会发现如果内容过多,他把前面的内容直接翻过去了,你这样就看不到上面的内容了,这时咱们可以这样去做,让文件内容一屏一屏的显示。这时就要用到另外一个命令more 命令。
[root@bestlinux ~]# more /etc/services |
这时你会看到文件内容会一屏一屏的显示出来,你只需用空格键就可以下翻了。还有些时候我们也有时会这样去做,就是将 cat显示出来的内容重新输出给 more 命令。这就是管道了。如下例:
[root@bestlinux ~]# cat /etc/services | more |
这时你会看到显示出来的内容和单独用more命令是一样的。这就是管道,后面我们会经常用到类似的操作。
11重定向
有时候我们需要将一些文件信息不是输出到屏幕上,而是让其输出到指定的文件或其它位置,这时我们就要用到了输出重定向了。 输出重定向只需要加上> 这位一个符号就可以了。下面我要把 /etc/services 文件中的内容输出到当前目录下的a.txt 文件中,如下:
[root@bestlinux ~]# cat /etc/services > a.txt [root@bestlinux ~]# ls -l a.txt /etc/services |
输出完后你再用ls –l 命令查看这二个文件,你会看到二个文件的大小是一样的。同样的你也可以用 cat 命令去查看。
from:http://blog.csdn.net/zacklin/article/details/7311903