购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 文件管理

文件管理包括文件或目录的创建、删除、查询、移动,由mkdir、rm、mv等命令实现。其中文件查询是重点,用find命令来进行,find的参数丰富,功能非常强大。

3.2.1 创建和删除

当需在当前目录下新建一个目录temp时,可以使用如下命令:

 

     mkdir temp

如果想把这个temp新建到/home/pi/projects下,那么可以使用以下命令:

 

     mkdir /home/pi/projects/temp

前提是projects目录必须存在,并且所有使用的用户对其拥有写入的权限。如果要把temp目录删除,可以使用如下命令:

 

     rmdir temp
     # 或者
     rmdir /home/pi/projects/temp

这里要求temp必须是一个空目录,如果temp中还有其他内容,可以使用如下命令:

 

     rm -fr temp

系统会把temp及其里面的所有内容全部删除。当需要新建一个文件时,直接用树莓派自带的nano编辑器即可。如果当前目录下不存在该文件,则将自动创建,存在则打开该文件:

 

     nano c0c.txt

同时,也可以用rm命令来删除一个文件:

 

     rm c0c.txt

或者使用mv命令把它移动到其他的位置,命令如下:

 

     mv c0c.txt /home/pi

前提是要移动的这个目录必须存在,如果不存在,就需要使用mkdir命令新建一个目录。在移动的过程中,也可以给它重新命名:

 

     mv c0c.txt /home/pi/cocpy.txt

同样,以上的删除中移动命令也适用于文件夹,也可以使用cp命令复制一个文件到文件夹中,命令如下:

 

     cp c0c.txt /home/pi/Document

如果要复制整个目录到/home/pi下,就需要加上“-r”,命令如下:

 

     cp -r coc /home/pi

有时既不移动也不复制文件,而是采用创建一个符号链接/硬链接的方式,命令如下:

 

     # 硬链接,删除一个,将仍能找到
     ln cc ccAgain
     # 符号链接(软链接),删除源,另一个无法使用(后面一个ccTo 为新建的文件)
     ln -s cc ccTo

3.2.2 目录切换

目录切换可以直接输入ls命令然后按Enter键,或者输入ls -l命令再按Enter键,加上“-l”参数后目录下的文件以清单形式展现,可以清晰展示文件的类型、所属用户、创建时间等信息,如图3.4所示。

图3.4 目录信息

如图3.4所示第一列“drwxr-xr-x”中的第一个字母d,表示该文件是一个目录(directory)文件,如果是普通文件,第一个字母的位置将显示连字符“-”。其余9个字符以3个为一组(连字符“-”也包括在内),每一组均表示文件对于不同用户的权限:第一组“rwx”表示该文件所属用户具有读(read)、写(write)和执行(execute)该文件的权限;第二组“r-x”表示同组用户具有读和执行的权限(“-”表示不具备相关权限);第三组“r-x”表示其他所有用户具有读和执行的权限。

“ls -a”命令还能列出包括隐藏文件在内的所有文件,Linux所有隐藏文件的文件名以“.”开始。有些Linux发行版会提供ll命令,该命令等价于ls -l,但树莓派默认没有ll命令,可以通过修改用户主目录下的.bashrc文件,找到以下两行:

 

     #alias ll='ls -l'
     #alias la='ls -Al'

将上述代码中的#删除,保存后重新进入终端即可使用ll命令。有时需要知道当前在什么目录下,可以通过pwd命令打印出来。pwd就是print working directory(打印当前工作目录)的首字母缩写。

假设在如下目录中:

 

     /home/pi/projects/rebot/bin

但终端仅仅显示以下内容:

 

     pi@raspberrypi: /bin $

通过终端显示信息只知道在bin目录下,却不知道全部路径信息,这时就需要使用pwd命令。

可以通过cd命令到任何想去的目录,只要知道它的路径,这个路径可以是绝对路径,也可以是相对路径。假设位于以下目录中:

 

     /home/pi/projects/robot/bin/

如果想去/home/pi/projects/目录,可以使用绝对路径,命令如下:

 

     cd /home/pi/projects

也可以使用相对路径:

 

     $ cd ../../

其中../是指上一级目录,在这个示例中,bin目录往上两级就是projects目录。如果robot目录下,还有一个lib目录和bin目录同级,那么从bin目录去lib目录就可以使用以下命令:

 

     $ cd ../lib

也就是bin的上级目录下面的lib目录。此外,输入cd或者cd ~命令可以直接回到pi用户的主目录/home/pi/中。输入cd ..命令可以回到当前目录的上一级目录中。

3.2.3 权限设置

上一节在介绍ls命令时,相信大家已经大致了解了一个文件的权限可以用下面的形式来表示:

 

     -rwxrwxrwx

如果需要对权限进行修改,就要用到chmod命令。该命令使用直接或二进制两种方式修改权限。

1.直接方式

u代表文件所属用户;

g代表与文件所属用户同组的用户;

o代表其他所有用户。

例如一个文件的权限为:

 

     -rwxrwxrwx

如果希望其他所有用户仅具有只读权限,可以用如下命令来实现:

 

     chmod o-wx filename

这样,这个文件的权限就变成了。

 

     -rwxrwxr--

如果想恢复原来的全部可读可写和可执行的权限,就使用以下命令:

 

     chmod o+wx filename
2.数值方式

数值方式为每一种权限分配了一个数值:

r=4

w=2

x=1

将每一组所有权限的数值加起来即可。例如744,代表文件所属用户具有rwx权限,同组用户和其他所有用户只具有r权限。如果想将一个文件的权限设置为:

 

     -rwxr-xr-x

那么可以使用以下命令:

 

     chmod 755 filename

3.2.4 查找

可以使用以下方式搜寻文件或目录:

 

     find ./ -name "core*" | xargs file

使用以下命令查找目标文件夹中是否有obj文件:

 

     find ./ -name '*.o'

使用以下命令递归当前目录及子目录以删除所有.o结尾的文件:

 

     find ./ -name "*.o" -exec rm {} \

find是实时查找,如果需要更快地查询,可使用locate,locate会为文件系统建立索引数据库,如果有文件更新,需要定期执行更新命令来更新索引库。 GRf8oaZsDqXrcYiXqkueMNcV0unyGIDGtJKiX66geutbuPCU39mEDrztoeSGJ8rj

点击中间区域
呼出菜单
上一章
目录
下一章
×