Linux基础1 文件管理命令


一、linux文件管理

linux哲学思想里面,一切皆文件,所有的硬件设备也是在系统中映射成文件,直接操作文件相当于操作使用了硬件设备。文件管理所涉及到的命令ls、type、file、stat、cp、mv、install、mkdir、rmdir


二、文件类型

#ls -l 

查看文件的详情。

drwxr-xr-x  12 zhurudong  staff   408  1 10 20:58 eclipseworkspace

drwxr-xr-x:1位文件类型+9问权限

12:硬链接次数

zhurudong:文件所属用户

staff:文件所属租

408: 文件大小,默认字节为单位,即以byte为单位


文件类型

d: 目录文件(directory),目录也是文件,只不过是一种特殊的文件

l: 链接文件,也是软链接文件(link)

-: 普通文件(file)

s: 套接字文件(socket)

b: 块设备文件(block)

c: 字符设备文件(character)


三、相关命令


# nano 

文本编辑器


# mkdir —> make directory

创建目录

R: 递归创建目录

命令行展开:

mkdir -R /var/tmp/{x,y}   该写法会中tmp目录下同时创建x,y两个目录

# rmdir —> remove directory

删除空目录

只能删除目录,不能删除文件

p: 删除父目录。删除目录时,如果其父目录这时为空,也会删除掉父目录


# ls —> list

列出,列表

i:index,列出文件节点的索引号。#ls -i

l:list, 列表排列文件,包含文件类型、文件权限、所属主、所属组、时间戳、文件大小等等。#ls -l

h:结合-l使用,格式化列出文件大小,以K,M,G的形式显示。#ls -lh

a:列出所有文件,包含以.开头的隐藏文件,以及.和..

R:递归(recursive)列出文件


# type

查看命令类型

linux当中,命令有分 内置命令和外部命令

内置命令:linux sh当中内置的一些命令,这些命令中系统安装时已经存在,提供最基本的功能而存在。比如cd、ls、cp等等. 内置命令当系统启动时便会加载到内存当中,所以执行内部命令速度会快些。


外部命令:linux为了扩展某些功能而安装的命令,这写命令可以称为软件,这些命令通常要添加到环境变量当中,当直接执行命令时,从环境变量(.bash_profile、/etc/profile),找到PATH, 从而找到具体的命令绝对路径执行命令。

当某些命令执行过后,会记录在hash当中,以便下次执行的时候直接从改hash表当中找到命令的路径,节省了从PATH遍历查找路径的时间,使得执行效率提升。


命令的一般执行过程:

hash——>内置命令——>PATH   命令的调用其实应该是这样一个过程。


zhurudongdeMacBook:nodejs zhurudong$ type pwd

pwd is a shell builtin

zhurudongdeMacBook:nodejs zhurudong$ type cat

cat is /bin/cat

zhurudongdeMacBook:nodejs zhurudong$ 



# file —> determine file type

探测(查看)文件类型

参数:可以是多个文件,也可以使用bash通配符匹配多个文件. # file install.log


# stat

查看文件信息

通常该命令用于查看文件的访问时间、修改时间、改变时间。

该命令的执行会显示文件详细信息,比如文件大小(size)、块大小(block)、devices、links


# cp —> copy files

复制文件(s)

复制多个文件。可以复制多个文件,在参数为多个既可,但最后一个是目标,只可以有一个,不能多个。

i:提示确认是否进行操作

R:递归复制,用于复制目录时,递归复制其子目录和文件

f:不提示确认操作,也就是强制进行操作

v:(verbose)显示命令执行的过程

p:复制时,保留文件的原有属性,即保留文件原有的权限、所属主、所属组以及时间戳等信息。

a:(arcive)归档复制,不改变文件的任何属性进行的复制文件。常用于备份文件

cp情况分类:

1 #cp /tmp/test /var/tmp/abc

test为目录,abc为文件时,执行命令时提示复盖,如果强行覆盖,可以复制成功,但abc将会是一个链接类型的文件,内容是不正确的。

2 # cp /tmp/test.txt /tmp/install.log /var/tmp/xyz

该复制为多个文件复制,dest为最后一个参数xyz为目标。必须为目录,否则复制失败。 

3 # cp /tmp/test /var/tmp/abc

test为目录,abc为目录,复制失败。因为cp不能直接复制目录,必须加上-R,递归复制才成功, 如果目录abc不存在,则创建改目录,将test所有的文件包括目录递归复制到abc当中。#cp -Rf /tmp/test /var/tmp/abc


#mv —> move files

移动文件(s)

同cp一样,可以移动多个文件,参数指定即可,最后一个为目标文件,只可以有一个,不能多个。

但mv与cp不同的一点是,mv默认提供递归移动。

i:同cp一样,提示确认是否进行操作

f:与i相反,不提示确认操作,强行执行命令

v:显示命令的执行过程,常用于跟踪命令的执行情况


mv情况分类:

1 #mv /tmp/test /var/tmp/abc

test为目录,abc存在,且为文件。复制失败,因为不能将一个目录去覆盖一个文件。

2 #mv /tmp/test/ /var/tmp/abc/

test为目录,abc为一个目录,将/tmp下的test目录移动到abc下,目录名字仍然为test

3 #mv /tmp/test/* /var/tmp/abc/

将test下的所有文件移动到abc下,而不移动test目录,仅仅移动test目录下的文件而已


# install —> copy files

复制文件

该命令可以用于复制文件,可以复制单个文件,也可以复制多个文件到一个目录下。但该命令不能复制目录,如果要复制目录使用cp -R即可。但该命令可以用来创建目录# install -d /tmp/{test1,test2}。

说明:使用该命令复制文件,复制之后该文件就会拥有执行权限。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章