小熊andll

V1

2022/07/12阅读:16主题:绿意

linux之文件管理

linux之文件管理

目录树

几乎所有的操作系统的文件管理均使用目录树来管理文件和目录。目录树结构是在一个大的目录结构下存放其他目录或者文件,然后在目录中又存放文件或者目录,一层一层,类似于树的结构。

绝对路径和相对路径

绝对路径

绝对路径是从根目录开始寻找的,以"/"开头的文件路径是绝对路径。"/"表示根目录。

查看当前的目录命令:pwd

swz@swz-ubuntu:~$ pwd
/home/swz

特殊目录

在linux中有两个特殊目录,一个是(.),另外一个是(..)。一个点(.)表示的是当前目录,两个点(..)表示的是上一级目录。以点开头的文件是看不到的,它们是隐藏文件。可以用ls -a命令来查看它们。

swz@swz-ubuntu:~$ ls -a
.       桌面                             .conda                               .gnupg                  .npmrc                            repo                       .viminfo
..      Anaconda3-5.2.0-Linux-x86_64.sh  .condarc                             hand.data               opencv-3.4.16                     .repo_.gitconfig.json      .vscode
公共的  .bash_history                    .config                              hispark_pegasus         opencv-3.4.16.zip                 .rpmdb                     .vscode-server
模板    .bash_logout                     .deveco-device-tool                  hispark_pegasus.tar.gz  opencv.tgz                        snap                       .wget-hsts
视频    .bashrc                          .DevEcoDeviceTool                    .hpm                    OpenHarmony_2.0_canary_prebuilts  .ssh                       .Xauthority
图片    .bashrc-anaconda3.bak            .deveco-device-tool-debug            Huawei                  OpenHarmony_master                .sudo_as_admin_successful
文档    .cache                           devicetool-linux-tool-3.0.0.400.sh   .local                  OpenHarmony_master.7z             .swp
下载    caffe                            devicetool-linux-tool-3.0.0.400.zip  .mtoolsrc               .pki                              tmp
音乐    code                             .gitconfig                           .npm                    .profile                          .vim

相对路径

相对路径是指相对于某一个目录展开的,一般以"./"开始的是相对目录。例如上述,./opencv-3.4.16 就是一个相对路径。

文件的相关操作

创建文件

创建文件的命令用touch,touch 加文件名是创建文件的方法。假如文件存在,并不会修改文件内容,而是改变了文件的修改时间。

swz@swz-ubuntu:~/swz$ touch swz.txt
swz@swz-ubuntu:~/swz$ ls
swz.txt
swz@swz-ubuntu:~/swz$ ls -al
总用量 8
drwxrwxr-x  2 swz swz 4096  7月 11 11:24 .
drwxr-x--- 35 swz swz 4096  7月 11 11:23 ..
-rw-rw-r--  1 swz swz    0  7月 11 11:24 swz.txt

删除文件

删除文件用rm命令,默认删除文件,假如删除目录,目录有多个文件,可以用rm -rf循环删除文件。删除时,给定输入确定指令,以便于是否确定删除文件。

swz@swz-ubuntu:~/swz$ ls
1.txt  swz.txt
swz@swz-ubuntu:~/swz$ rm 1.txt
swz@swz-ubuntu:~/swz$ ls
swz.txt
swz@swz-ubuntu:~/swz$ touch lmy.txt
swz@swz-ubuntu:~/swz$ ls
lmy.txt  swz.txt
swz@swz-ubuntu:~/swz$ cd ..
swz@swz-ubuntu:~$ rm swz -rf
swz@swz-ubuntu:~$ ls
公共的  文档  Anaconda3-5.2.0-Linux-x86_64.sh     devicetool-linux-tool-3.0.0.400.zip  Huawei             OpenHarmony_2.0_canary_prebuilts  snap
模板    下载  caffe                               hand.data                            opencv-3.4.16      OpenHarmony_master                tmp
视频    音乐  code                                hispark_pegasus                      opencv-3.4.16.zip  OpenHarmony_master.7z
图片    桌面  devicetool-linux-tool-3.0.0.400.sh  hispark_pegasus.tar.gz               opencv.tgz         repo

移动或重命名文件

移动或者重命令文件:mv.使用mv命令可以直接在当前文件夹中直接修改文件的名字,mv 旧文件名 新文件名。或者是移动:mv 原先的文件路径 新的文件路径

swz@swz-ubuntu:~/swz$ ls
lmy.txt  swz.txt
swz@swz-ubuntu:~/swz$ mv swz.txt swz1.txt
swz@swz-ubuntu:~/swz$ ls
lmy.txt  swz1.txt
swz@swz-ubuntu:~/swz$ mv ./lmy.txt ..
swz@swz-ubuntu:~/swz$ ls
swz1.txt
swz@swz-ubuntu:~/swz$ cd ..
swz@swz-ubuntu:~$ ls
公共的  文档  Anaconda3-5.2.0-Linux-x86_64.sh     devicetool-linux-tool-3.0.0.400.zip  Huawei             opencv.tgz                        repo     tmp
模板    下载  caffe                               hand.data                            lmy.txt            OpenHarmony_2.0_canary_prebuilts  snap
视频    音乐  code                                hispark_pegasus                      opencv-3.4.16      OpenHarmony_master                swz
图片    桌面  devicetool-linux-tool-3.0.0.400.sh  hispark_pegasus.tar.gz               opencv-3.4.16.zip  OpenHarmony_master.7z             swz.txt

查看文件

查看文件利用cat命令,在cat后加上文件名就可以查看内容。

swz@swz-ubuntu:~/swz$ vi swz1.txt
swz@swz-ubuntu:~/swz$ cat swz1.txt 
swz is a hero.
swz like to programming.
The more work harder,the more luckier you are!

查看文件头

有时候文件很大,我们不需要看所有的内容。我们可以使用head来查看部分内容。利用head 文件名 -n指定查看的行数。

查看文件尾

用tail命令,具体方法类似head。

文件格式转换

dos2unix是windows下的文件共享到linux下,其格式可能会发生变化,用这个命令可以改文件格式。

目录的相关操作

进入目录

cd是changed directory的缩写。方便用户切换到不同的用户。

新建目录

mkdir,创建一个新的目录。假如想在一个目录下继续创建新的目录,利用-p参数一次性地创建多个目录。

swz@swz-ubuntu:~/swz$ mkdir -p ./swz/swz1/swz2/swz3

删除目录

删除目录可以用rmdir和rm,当目录非空时,不能直接删除目录。如果想要强制删除目录。我们可以

rm -r强制删除目录,一般更常见的搭配方式为rm -rf。

swz@swz-ubuntu:~/swz$ ls
swz  swz1  swz1.txt  swz2
swz@swz-ubuntu:~/swz$ rm swz
rm: 无法删除 'swz': 是一个目录
swz@swz-ubuntu:~/swz$ rmdir swz
rmdir: 删除 'swz' 失败: 目录非空
swz@swz-ubuntu:~/swz$ rm -r swz
swz@swz-ubuntu:~/swz$ ls
swz1  swz1.txt  swz2

文件和目录复制

cp是文件和目录复制的命令,其是copy的缩写。

cp复制文件直接cp 文件名 新的路径名,复制目录可以利用前面的-r参数实现循环复制。

文件和目录的权限

利用ls -al可以查看文件或者目录的权限,输出为7列。

swz@swz-ubuntu:/$ ls -al
总用量 2097260
drwxr-xr-x  19 root root       4096  7月  5 17:16 .
drwxr-xr-x  19 root root       4096  7月  5 17:16 ..
lrwxrwxrwx   1 root root          7  4月 29 16:11 bin -> usr/bin
drwxr-xr-x   4 root root       4096  6月 28 14:44 boot
drwxrwxr-x   2 root root       4096  4月 29 16:17 cdrom
drwxr-xr-x  20 root root       4120  7月 11 16:16 dev
drwxr-xr-x 133 root root      12288  7月  7 08:23 etc
drwxr-xr-x   3 root root       4096  4月 29 16:21 home
lrwxrwxrwx   1 root root          7  4月 29 16:11 lib -> usr/lib
lrwxrwxrwx   1 root root          9  4月 29 16:11 lib32 -> usr/lib32
lrwxrwxrwx   1 root root          9  4月 29 16:11 lib64 -> usr/lib64
lrwxrwxrwx   1 root root         10  4月 29 16:11 libx32 -> usr/libx32
drwx------   2 root root      16384  4月 29 16:11 lost+found
drwxr-xr-x   3 root root       4096  4月 29 19:49 media
drwxr-xr-x   3 root root       4096  4月 29 20:20 mnt
drwxr-xr-x   2 root root       4096 10月 13  2021 opt
dr-xr-xr-x 348 root root          0  7月 11 16:16 proc
drwx------  11 root root       4096  7月  5 19:59 root
drwxr-xr-x  35 root root        920  7月 11 21:33 run
lrwxrwxrwx   1 root root          8  4月 29 16:11 sbin -> usr/sbin
drwxr-xr-x   2 root root       4096 10月 13  2021 srv
-rw-------   1 root root 2147483648  4月 29 16:11 swapfile
dr-xr-xr-x  13 root root          0  7月 11 16:16 sys
drwxrwxrwt  21 root root      24576  7月 11 21:20 tmp
drwxr-xr-x  15 root root       4096  5月  5 16:17 usr
drwxr-xr-x  13 root root       4096  7月  5 17:16 var

第一列是文件类别和权限,由10字符组成。第一个字符表示文件的类型。权限有rwx,分别是可读、可写以及可执行。

第一个字符有:d,-,l,b,c,s,p。d代表目录,-代表普通文件,l代表链接文件,b代表块文件,c代表字符文件,s代表socket文件,p代表管道文件。

第二列表示连接数,目录的连接数是其包括其他目录的个数加2。

第三列表示该文件的所有人,第四列代表该文件的所有组,第五列代表该文件的大小,第六列表示文件的创建时间或者最近修改的时间,第七列是文件名。

文件隐藏属性

利用lsattr来查看文件的隐藏属性,一般可以加-i或者-a属性。

改变文件权限

利用chmod来进行文件属性,用户有user、group以及other三种。增加权限用+,减少权限用-,赋予权限用=。例如:chmod u+r 文件名。

另外可以使用数字给其赋予权限, 规定r=4,w=2,x=1。三组数字,分别给予三个权限。

改变文件的拥有者

利用chowm改变文件的拥有者,chowm 文件拥有者 文件名。或者直接修改文件的群组,如果需要循环修改文件,可以加上-R参数。

改变文件的拥有组

利用chgrp来修改文件的拥有组。

查看文件类型

利用file命令可以查看文件类型,比ls -l给出的信息多很多。

swz@swz-ubuntu:~$ file devicetool-linux-tool-3.0.0.400.zip 
devicetool-linux-tool-3.0.0.400.zip: Zip archive data, at least v1.0 to extract

查找文件

一般查找

一般查找文件用find,用法:find PATH -name FILENAME

其中PATH代表文件路径,FILENAME是文件名。

swz@swz-ubuntu:~$ find ./ -name *.zip
find: paths must precede expression: `opencv-3.4.16.zip'
find: possible unquoted pattern after predicate `-name'?

数据库查找

利用数据去查找文件信息比find查找更快,一般执行前用updatedb来更新数据信息。

其命令为locate。

查找可执行文件

利用which/whereis,可以查看可执行文件的路径。而whereis还可以查看文件的man信息。

swz@swz-ubuntu:~$ which passwd
/usr/bin/passwd
swz@swz-ubuntu:~$ whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz /usr/share/man/man1/passwd.1ssl.gz

文件压缩和打包

gzip/ungzip

解压或者压缩单个文件的工具。

swz@swz-ubuntu:~/swz$ ls
swz1  swz1.txt  swz2
swz@swz-ubuntu:~/swz$ gzip swz1.txt
swz@swz-ubuntu:~/swz$ ls
swz1  swz1.txt.gz  swz2
swz@swz-ubuntu:~/swz$ gunzip swz1.txt.gz 
swz@swz-ubuntu:~/swz$ ls
swz1  swz1.txt  swz2

tar

tar不但可以打包文件,还可以将整个目录中的全部文件整合成一个包,整合包的同时还能使用 gzip的功能进行压缩。以gzip压缩的文件名为.gz。

bzip2

使用bzip2压缩的文件名默认带有.bz2作为扩展名。用带-z参数的来压缩文件。

分类:

后端

标签:

操作系统

作者介绍

小熊andll
V1