linux文件目录管理基本命令总结

时间:2022-07-22
本文章向大家介绍linux文件目录管理基本命令总结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

文件名称区分大小写

以.开头的文件为隐藏文件

文件有两类数据:

元数据:metadata   (文件的类型,权限,从属关系,大小,时间,数据区指针)

数据:data  (文件内容)

linux中:蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件

linux目录结构

/boot  引导文件存放目录,与启动相关的文件:内核,ramdisk文件,grub相关,grub菜单文件 /bin   binary 二进制 能让计算机直接执行的文件如命令,系统把我们可执行的命令都放在了bin下 /sbin  system binary 只有root才能执行/sbin下的文件操作 /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /lib  库文件 library /lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64 /home  家 /home/username /root  /media 便携式移动设备挂载点 临时使用是空的

/mnt 临时文件系统挂载点 临时使用是空的

/etc 配置文件

/dev device 设备文件及特殊文件存储位置 /dev/sda 硬盘路径 /dev/tty1 /dev/pts/1(尾终端名) /dev/cdrom(光驱)原名/dev/sr0

/dev/sdb 优盘

dev下两大设备 1:块设备,2:字符设备

/opt  /usr  程序本身的一些文档,配置文件模板等,默认放在/usr /srv  服务数据,httpd网站的页面文件html,php,jsp,ftp所共享的数据文件 默认放在/var /tmp  临时文件存储位置 /usr: universal shared, read-only data /var: variable data files /proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

关于目录的一些简单命令

cd 改变目录

切换至父目录: cd ..

切换至当前用户主目录: cd 

切换至以前的工作目录: cd -

ls 列出当前目录的内容或指定目

ls -a 列出所有文件包含隐藏文件

ls -l =ll 列出所有文件并显示文件的 类型,权限,从属关系,大小,时间,名字

ls -d 只显示本身目录名,不显示目录里内容

* 关于时间戳 atime 访问时间 mtime 数据修改时间 ctime 元数据修改时间 可能过stat 文件路径查看全部时间 -t 按mtime 从最近到最远的时间排序 -r 倒序 -ut  按atime  从最近到最远的时间排序 -r 倒序 -ct  按ctime  从最近到最远的时间排序 -r 倒序 -ul 时间列,显示为atime

-cl 时间列,显示为ctime

stat 文件名  显示文件的元数据

cat 文件 访问文件   只是修改文件的at(Access Time)

echo 11 >>文件   追加文件  修改文件的mt(Modify Time)和ct (Change Time)因为 文件内容改变,文件的元数据中文件大小跟着改变

chmod 777 文件名 给文件增加权限  只是修改文件的元数据 只改变ct

[root@CentOs6 ~]# stat qjc.t
  File: `qjc.t'
  Size: 23        	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 1070724     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-14 10:12:21.704722601 +0800 #at
Modify: 2018-07-14 10:13:16.584726026 +0800 #mt
Change: 2018-07-14 10:13:16.584726026 +0800 #ct
[root@CentOs6 ~]# cat qjc.t
echo "hel	:wqworld"
11
[root@CentOs6 ~]# stat qjc.t
  File: `qjc.t'
  Size: 23        	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 1070724     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-14 21:23:17.658006418 +0800
Modify: 2018-07-14 10:13:16.584726026 +0800
Change: 2018-07-14 10:13:16.584726026 +0800
[root@CentOs6 ~]# echo 11 >>qjc.t
[root@CentOs6 ~]# stat qjc.t
  File: `qjc.t'
  Size: 26        	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 1070724     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-14 21:23:17.658006418 +0800
Modify: 2018-07-14 21:24:08.361013284 +0800
Change: 2018-07-14 21:24:08.361013284 +0800
[root@CentOs6 ~]# chmod 777 qjc.t
[root@CentOs6 ~]# stat qjc.t
  File: `qjc.t'
  Size: 26        	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 1070724     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-14 21:23:17.658006418 +0800
Modify: 2018-07-14 21:24:08.361013284 +0800
Change: 2018-07-14 21:24:29.469000750 +0800
[root@CentOs6 ~]# chmod 777 qjc.t
[root@CentOs6 ~]# stat qjc.t
  File: `qjc.t'
  Size: 26        	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 1070724     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-14 21:23:17.658006418 +0800
Modify: 2018-07-14 21:24:08.361013284 +0800
Change: 2018-07-14 21:36:26.834998216 +0800
[root@CentOs6 ~]# 

echo hello>test  创建一个test的文件,文件内容是hello里的文件 文件重定向

touch  touch filename 若文件不存在,则创建一个空文件   若文件存在,则更新三个时间戳     -a filename 仅更新atime ctime     -m filename 仅更新mtime ctime     -c filename 若文件存在,则更新三个时间戳 若文件不存在,不会创建 -t 203010012050.30 fstab  将时间戳更新为指定时间

cp  复制

-i 覆盖前提示用户,若不加-i,则直接覆盖(前提没有alias) {意思是:复制一个文件到别的文件夹下,别的文件夹下有相同的内容}

[root@CentOs6 ~]# touch test1
[root@CentOs6 ~]# cp test1 /home
[root@CentOs6 ~]# cp test1 /home/test3
[root@CentOs6 ~]# ls /home
test1  test2  test3  zhangsan
[root@CentOs6 ~]# cp -i test1 /home/test3
cp: overwrite `/home/test3'? y
[root@CentOs6 ~]# cp -i test1 /home/zhangsan
[root@CentOs6 ~]# ls /home/zhangsan
test1
[root@CentOs6 ~]# 
[root@CentOs6 ~]# cp qjc.t test1 /home/test1
cp: target `/home/test1' is not a directory
[root@CentOs6 ~]# cp qjc.t test1 /home/test4
cp: target `/home/test4' is not a directory
[root@CentOs6 ~]# cp qjc.t test1 /home/zhangsan
cp: overwrite `/home/zhangsan/test1'? 
[root@CentOs6 ~]# mkdir kobe
[root@CentOs6 ~]# cp -r kobe /home/zhangsan
[root@CentOs6 ~]# cp -r kobe /home/test1
cp: cannot overwrite non-directory `/home/test1' with directory `kobe'
[root@CentOs6 ~]# cp -r kobe /home
[root@CentOs6 ~]# cd /home
[root@CentOs6 home]# ls
kobe  qjc.t  test1  test2  test3  zhangsan
[root@CentOs6 home]# ls zhangsan
kobe  qjc.t  test1
[root@CentOs6 home]# 

 -a命令相当于将整个文件夹目录备份,包括文件的属性,链接,日期等都完全相同。

-r或-R  递归,如源包含目录,一定要递归才能复制 -d 当复制的源是一个软链接时,复制出的文件,也是软链接(windows中的快捷方式),若不加d,则复制完整的源文件

-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。

mv

mv(选项)(参数)

选项

mv(选项)(参数)
选项


--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

 rm   -i 删除前提示用户,若不加-i,则直接删除(前提没有alias)

-f 强制删除

tree -L level 列出指定级的路径 -d 只列出目录 -P 模式匹配 mkdir  * -p a/b/c/d/e 连续创建多级目录 -v 创建时显示过程 -m 777 创建时指定权限