【转】 Linux常用文件操作命令

时间:2023-03-08 22:38:43

1 改变目录

要进入相应的目录我们可以使用Linux下的改变目录命令cd (ChangeDirectory)。
下面我要进入到/tmp目录下,如下操作:

[root@bestlinux ~]# cd /tmp/

【转】 Linux常用文件操作命令

你会看到有地方变了,是的,就是在PS1那个位置有所改变,由原来的“~”变为了“tmp”。那么 ~ 又是什么意思呢?其实 ~表示的就是家目录的意思,既然表示的是家目录的意思,那如果你用cd ~会出现什么样的结果呢?下面咱们就来看一下。

[root@bestlinux tmp]# cd ~

【转】 Linux常用文件操作命令

你会看到变了,又变到了原来的位置了,这就是你的家目录。
在这里再给大家多说一点,你用的是哪个用户你用 cd ~ 就会进入到哪个目录下。因为当前咱们是以root的身份进入的,这时用cd ~进入的目录就是
/root 目录下。还有一个就是这里面的 # ,通常情况下 # 就示的就是超级管理员,如果这个位置是
$符号的话,通常情况下表示的是当前登陆的用户是普通用户。这只是通常情况下,其它情况下就不一定了。
  那么我把目录改来改去的不知道当前目录在什么地方了,怎么办啊?【转】 Linux常用文件操作命令

查看当前路径

当你改变目录后不知道当前所在的路径了,我们可以用pwd命令来查看当前的路径。这个命令就是用来查看当前路径的,没有其它的作用。如下所示:

[root@bestlinux network-scripts]# pwd

【转】 Linux常用文件操作命令

我知道了当前路径了,那么怎样创建一个文件夹呢?

创建目录

在指定目录下要创建一文件夹的话可以用mkdir 命令。比如我要在 /tmp下创建一个test的文件夹。我可以这样去做。

[root@bestlinux ~]# mkdir /tmp/test

这时你用ls /tmp 可以看到在 /tmp目录下创建了一个名为test的文件夹。同样的也可以在当前目录下创建一指定的文件夹,这时直接使用mkdir命令后面加相应的文件名就可以了。
我可以创建目录了,那么我怎么去创建一个文件呢?

创建文件

创建文件的命令可以说有很多,在这里咱们就先说一下比较简单的命令 touch 。我要在 /tmp/创建一个名为a.txt的文件。如下所示:

[root@bestlinux ~]# touch /tmp/a.txt

【转】 Linux常用文件操作命令

创建了文件或文件夹后怎样删除呢?下面咱们来一起看一下。

删除文件或文件夹

删除文件或文件夹均可以用同一个命令来操作都可以用 rm命令。如我要删除一文件夹 /tmp/a.txt 文件,我可以这样去做。

[root@bestlinux ~]# rm /tmp/a.txt

【转】 Linux常用文件操作命令

在删除的过程中,你会看到中间有一段话“rm:是否删除一般空文件‘/tmp/a.txt’?”,这是确认的一句话,这时输入字符“y”回车就可以了。
同样的删除一个文件夹,咱们来看一下操作,同样的我还是删除 /tmp/test 文件夹。如下操作一起来注意看一下。

[root@bestlinux ~]# rm /tmp/test/

【转】 Linux常用文件操作命令

你会看到这样的一个信息“rm: 无法删除目录‘/tmp/test/’:是一个目录”,也就是说没有删除掉这个文件,在操作过程中出现了问题,一起来看一下问题所在。咱们一起来 man 一下这个rm命令,查看一下他的操作方式。

[root@bestlinux ~]# man rm

【转】 Linux常用文件操作命令

从中你可以看到这样一行,“-r, -R, --recursive remove the contents ofdirectories recursively”,它的意思就是说可以删除文件夹的意思吧。好咱们就在后面加上 –r 的参数。

[root@bestlinux ~]# rm -r /tmp/test/

【转】 Linux常用文件操作命令

这时你会看到“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和里面的内容

这样你会看到没有任何的提示信息。

复制文件

复制文件信息是我们最常用的操作了,在Linux里面也有一个比较好用的命令cp命令。cp命令的格式和前的咱们所提到的命令格式是类似的,这个操作并不只是简单的指定一个文件就可以了,因为复制要有源文件,也要有目标文件,所以这里要有至少二个param 。格式如下:

cp  [参数]  源文件 目标文件

之所以前面没有说命令格式,是因为前面命令里面只有一个参数,所以没有什么可以说的,现在咱们看到这个命令至少要有两个参数了。下面我就复制/root/ 目录下的 a.txt 文件到 /tmp 下。如下操作:

[root@bestlinux ~]# cp /root/a.txt  /tmp/

【转】 Linux常用文件操作命令

您会看到这时没有任何的信息显示出来,重新返回到了命令提示符,这时就证明 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目录

【转】 Linux常用文件操作命令

这就是怎样去复制文件夹和文件夹中的内容。那么如果我想复制当前目录下的所有文件到指定目录下呢?这时我们就要用到通配符了。下面我们来看一下通配符。
      * :表示所有文件和文件夹
      ?:表示一个字符
知道了上面这二个通配符了就可以做相应的一些操作了。下面我要复制刚才咱们创建的 dir 目录下的所有内容到 /tmp下。dir里面是咱们刚才创建的 a.txt 文件,这时复制过去后在 /tmp 下你会看到 a.txt 文件。如下操作:

[root@bestlinux ~]# cp dir/* /tmp/
[root@bestlinux ~]# ls /tmp/a.txt  -l

【转】 Linux常用文件操作命令

这样用通配符也可以完成相关的操作。

移动和改名

如果想要移动文件的话可以用 mv命令格式如下:

mv  [参数]  源文件 目地文件

这个操作和cp命令的操作是类似的。
   例子:将 /root 下的 dir 移动到 /home下。如下操作:

[root@bestlinux ~]# mv dir/ /home/
[root@bestlinux ~]# ls -l /home/

【转】 Linux常用文件操作命令

这样当前目录下的 dir 文件被移动到了 /home 下。
那么改名的格式也是类似的,下面我就把 /home/ 下的dir目录改名为directory。如下操作:

[root@bestlinux ~]# cd /home/
[root@bestlinux home]# mv dir/ directory
[root@bestlinux home]# ls -l

【转】 Linux常用文件操作命令

这样 dir 目录就改名为 directory名了。

查找命令

在我创建了那么多的文件中一不小心忘记放到哪了,这个时候我们就想着要查找一下了,这时我们有这样一个命令叫find 。可以用于查找工作。格式如下:

find [路径] [参数]
参数说明:
1. 时间:
   -atimen    :在 n*24小时内被 access 即存取过的文件列出来!
   -ctimen    :在 n*24小时内被 changed 即改变、新增的文件或目录印出
   -mtimen    :在 n*24小时内被 modified 即修改过的文件印出
  -newer file :比 file 还要新的文件就列出来!
  1. 使用名称:

-gidn     :寻找 群组 ID 为 n 的文件
   -group name :寻找群组名称为 name的文件
   -uidn     :寻找拥有者 ID 为 n 的文件
   -user name :寻找使用者名称为 name 的文件
   -name file :寻找档名为 file 的文件名称(可以使用万用字符)
   -type type :寻找档案属性为 type 的档案,type 包含了 b, c, d, p, l, s,这些与前一章的属性相同!例如 l 为 Link而 d 为路径之意!

如下例:

[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

【转】 Linux常用文件操作命令

这时你会看到ls命令在/bin/目录里面。用起来很方便吧。

查看文件内容

对于一个文本文件,我们怎么去查看其中的内容呢?我们可以用到查看文本内容的命令cat 命令,除了这一个还有 tail 、head 命令。

[root@bestlinux ~]# cat /etc/services

# /etc/services:
# $Id: services,v 1.40 2004/09/23 05:45:18 notting Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a singlewell-known
# port number for both TCP and UDP; hence, most entries here havetwo entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October1994).  Not all ports
# are included, only the more common ones.
……  //中间省略

binkp          24554/udp                      # Binkley
asp            27374/tcp                      # Address Search Protocol
asp            27374/udp                      # Address Search Protocol
tfido          60177/tcp                      #Ifmail
tfido          60177/udp                      # Ifmail
fido           60179/tcp                      # Ifmail
fido           60179/udp                      # Ifmail

# Local services

同样的还可以用 tail 和 head 这两个命令来查看头和尾一些数据信息。格式如下:

[root@bestlinux ~]# head /etc/services
[root@bestlinux ~]# tail /etc/services

结果会显示 /etc/services 的前十行和后十行内容。

10 管道

在用 cat命令显示文件内容的时候你会发现如果内容过多,他把前面的内容直接翻过去了,你这样就看不到上面的内容了,这时咱们可以这样去做,让文件内容一屏一屏的显示。这时就要用到另外一个命令more 命令。

[root@bestlinux ~]# more /etc/services

【转】 Linux常用文件操作命令

这时你会看到文件内容会一屏一屏的显示出来,你只需用空格键就可以下翻了。还有些时候我们也有时会这样去做,就是将 cat显示出来的内容重新输出给 more 命令。这就是管道了。如下例:

[root@bestlinux ~]# cat /etc/services | more

【转】 Linux常用文件操作命令

这时你会看到显示出来的内容和单独用more命令是一样的。这就是管道,后面我们会经常用到类似的操作。

重定向

有时候我们需要将一些文件信息不是输出到屏幕上,而是让其输出到指定的文件或其它位置,这时我们就要用到了输出重定向了。
输出重定向只需要加上> 这位一个符号就可以了。下面我要把 /etc/services 文件中的内容输出到当前目录下的a.txt
文件中,如下:

[root@bestlinux ~]# cat /etc/services > a.txt
[root@bestlinux ~]# ls -l a.txt /etc/services

【转】 Linux常用文件操作命令

输出完后你再用ls –l 命令查看这二个文件,你会看到二个文件的大小是一样的。同样的你也可以用 cat 命令去查看。

from:http://blog.****.net/zacklin/article/details/7311903