小熊andll
2022/07/12阅读:29主题:绿意
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参数的来压缩文件。
作者介绍