第四天 文件和目录操作

7.1 linux 文件系统
linux文件不靠后缀名 内置标识

1、普通文件 - 开头代表 普通文件 文本文件 二进制程序 音频 视频

2、目录文件 d 开头代表 目录文件

3、设备文件 特殊类型文件 /dev (device)
ll /dev/rc.d
ll /dev/sd*
[[email protected] ~]# ll /dev|grep s
brw-rw----. 1 root disk 8, 0 Jul 17 20:33 sda
brw-rw----. 1 root disk 8, 1 Jul 17 20:33 sda1
brw-rw----. 1 root disk 8, 2 Jul 17 20:33 sda2
crw-rw----. 1 root cdrom 21, 0 Jul 17 20:33 sg0
crw-rw----. 1 root disk 21, 1 Jul 17 20:33 sg1

主设备号 次设备号

b 代表块类型设备 block 以块为基本单位 硬盘

c 代表字符类型设备 单字符为基本单位 终端

简化设备调用

# cat install.log > /dev/lpr0 // 重定向 打印文件

[[email protected] ~]# who
shan tty1 (直连) 2017-07-17 20:34 (:0)
root pts/0 (虚拟终端) 2017-07-18 03:45 (192.168.0.100)
# echo hello > /dev/pts/1
# echo hi > /dev/pts/0

裸设备 没有文件系统

4、管道文件 先进先出 fifo 队列
标志 p
创建管道文件 mkfifo mypipe

5、链接文件---标志 L
硬链接 2个目录项 指向同1个文件 hardlink
软链接 符号链接 快捷方式 symbollink

7.2 linux系统目录结构
分层的树形结构,都挂载在根文件系统 / 下
子目录遵守FHS规范
/root root用户目录
/home 用户主目录
/bin 包含常用可执行文件 不能包含子目录
/sbin 系统管理员和root用户所使用命令文件
/dev 设备文件
/tmp 临时文件目录

[[email protected] /]# ls /bin

[[email protected] /]# ls /sbin s系统管理 防火墙 存储 磁盘分区
/boot 系统内核文件 引导装载程序
/etc 文本配置文件
/proc 进程信息映射
[[email protected] 2448]# cd /proc/2071
[[email protected] 2071]# cat cmdline
/usr/libexec/gvfs-afc-volume-monitor

7.3.1 文件inode和目录项

磁盘分区 super block 超级块 像书的封面
|
inod (index node) 索引节点
|
数据区域 目录项/文件

目录 数据区域为目录项 包含 文件名 索引节点 /dir0l/file01

根目录包含子目录 目录项 检索 索引节点

索引节点 不包含文件名 文件名由上级索引节点对应

目录项2个 指向1个文件 叫做硬链接

3.1 df //disk free 分区大小

[[email protected] ~]# df -h //查看磁盘空间大小 分区容量
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server
-lv_root
18G 2.8G 15G 17% /
tmpfs 499M 112K 499M 1% /dev/shm
/dev/sda1 485M 55M 405M 12% /boot

[[email protected] ~]# df -i // 查看分区 索引节点
Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/mapper/vg_server-lv_root 1191360 94464 1096896 8% /
tmpfs 127601 5 127596 1% /dev/shm
/dev/sda1 128016 43 127973 1% /boot

3.2 du (usage) 查看文件及目录空间占用情况

du -s /root //只显示目录本身
du -a /root //文件及目录占用空间

du -a /boot|sort -n // -n 按数字排序 查看boot目录下文件占用情况

du -ah /boot|sort -rn|head -5 // -r 反向排序

3.3 ll -i 索引节点信息

[[email protected] ~]# ll -i //索引节点编号
total 180

916544 -rw-r--r--. 1 root root 69 Jul 18 06:55 1
917255 -rw-r--r--. 1 root root 14611 Jul 18 06:41 200
916535 -rw-r--r--. 1 root root 0 Jul 17 22:07 aasb
1052297 drwxr-xr-x. 2 root root 4096 Jul 18 07:30 aasdf
944124 -rw-------. 1 root root 1613 Jul 17 00:24 anaconda-ks.cfg

ls -ih /boot

alias //系统定义别名

3.4 stat
stat /root/ // 查看目录信息

[[email protected] ~]# stat test.log // 查看文件信息 来自索引节点

File: `test.log‘//不在文件索引节点取出
Size: 30 Blocks: 8 IO Block: 4096 regular file
Device: fc00h/64512d Inode: 916546 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-07-18 02:38:20.562000778 -0400
Modify: 2017-07-18 08:25:43.598998088 -0400//索引节点 修改时间
Change: 2017-07-18 08:25:43.598998088 -0400//数据区域 修改时间

7.4文件和目录操作管理

4.1 pwd:print working directory
4.2 cd: change direction
相对路径 没有‘/‘ 直接cd 下级目录 ;.当前目录 ..上级目录 ./ 在当前路径下执行脚本 脚本文件执行 ./bash.sh
绝对路径 由根目录开始

[[email protected] dir04]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
//安全路径
文件名 .开头为隐藏文件
[[email protected] ~]# ll -d /root //看文件目录
dr-xr-x---. 32 root root 4096 Jul 18 07:30 /root
[[email protected] ~]# ls -R //递归查看

rm -rf //强制删除目录 文件
cp:复制文件和目录
cp:源文件 源文件 .. 目标文件
cp -a : 保留源文件基本属性
mv:移动文件 目录 同一目录下文件移动 则更改文件名

sort -rn //按数字排倒叙
head -5 //取前5
head // 默认查看最前十行
tail // 默认查看最后十行
wc -l //计数

tree //以树状图逐级列出目录

file //查看文件类型

4.3 scp //远程主机传输文件 ssh
[[email protected] ~]# scp /root/1 [email protected]:/root
The authenticity of host ‘192.168.0.1 (192.168.0.1)‘ can‘t be established.
RSA key fingerprint is 59:35:46:00:c9:4b:88:c5:25:65:b8:48:42:00:89:7c.
Are you sure you want to continue connecting (yes/no)? n
Please type ‘yes‘ or ‘no‘: no
Host key verification failed.
lost connection
[[email protected] ~]# scp /root/1 [email protected]:/root
The authenticity of host ‘192.168.0.1 (192.168.0.1)‘ can‘t be established.
RSA key fingerprint is 59:35:46:00:c9:4b:88:c5:25:65:b8:48:42:00:89:7c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.0.1‘ (RSA) to the list of known hosts.
[email protected]‘s password:
1 100% 69 0.1KB/s 00:00
[[email protected] ~]# scp [email protected]:/root/aasb /root
[email protected]‘s password:
aasb 100% 0 0.0KB/s 00:00

4.4 sftp //远程ftp service sftp status
[[email protected] ~]# sftp [email protected]
Connecting to 192.168.0.1...
[email protected]‘s password:
sftp> cd /root
sftp> lcd /home
sftp> put 1
stat 1: No such file or directory
sftp> get 1
Fetching /root/1 to 1
/root/1 100% 69 0.1KB/s 00:00

7.5 链接文件
1、硬链接 两个目录项指向同一个文件节点 不能跨越磁盘分区
2、软连接 记录路径信息
操作
ln file1 hardlink01 //创建硬链接
ln -s /root/file1 symbolllink01 //创建符号链接

时间: 2024-10-06 22:18:48

第四天 文件和目录操作的相关文章

c++Builder 下的文件及目录操作

转自 http://blog.csdn.net/ktcserver/article/details/936329 一.判断目录是否存在:           C++   Builder中提供了检查文件是否存在的函数FileExists,indows   程序实现如下:           设char   *Dir为带判断的目录       bool   Exist;   //   最后结果,表示目录是否存在       if(Dir[strlen(Dir)]=='//')Dir[strlen(D

APUE学习笔记:第四章 文件和目录

4.1 引言 本章将描述文件的特征和文件的性质 4.2 stat.fstat和lstat函数 #include<sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict buf); int fstat(int filedes,struct stat *buf) int lstat(const char *restrict pathname,struct stat *restrict buf); 三个函数的返

计算机程序的思维逻辑 (59) - 文件和目录操作

前面两节我们介绍了如何通过流的方式读写文件内容,本节我们介绍文件元数据和目录的一些操作. 文件和目录操作最终是与操作系统和文件系统相关的,不同系统的实现是不一样的,但Java中的java.io.File类提供了统一的接口,底层它会通过本地方法调用操作系统和文件系统的具体实现,本节,我们就来介绍File类. File类中的操作大概可以分为三类: 文件元数据 文件操作 目录操作 在介绍这些操作之前,我们先来看下File的构造方法. 构造方法 File既可以表示文件,也可以表示目录,它的主要构造方法有

Python文件和目录操作实例代码

对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这些函数无论是在Unix.Windows还是Macintosh平台上,它们的使用方式是完全一致的. 本文将详细解释这些函数的使用方法.首先,介绍Python语言中类似于Windows系统的dir命令的列出文件功能,然后描述如何测试一个文件名对应的是一个标准文件.目录还是链接,以及提取文件大小和日期的方法.之后,还将介绍如何删除文件和目录

Java编程的逻辑 (59) - 文件和目录操作

前面两节我们介绍了如何通过流的方式读写文件内容,本节我们介绍文件元数据和目录的一些操作. 文件和目录操作最终是与操作系统和文件系统相关的,不同系统的实现是不一样的,但Java中的java.io.File类提供了统一的接口,底层它会通过本地方法调用操作系统和文件系统的具体实现,本节,我们就来介绍File类. File类中的操作大概可以分为三类: 文件元数据 文件操作 目录操作 在介绍这些操作之前,我们先来看下File的构造方法. 构造方法 File既可以表示文件,也可以表示目录,它的主要构造方法有

【Linux命令详解】2、文件和目录操作管理

2.文件和目录操作管理 本节主要学习在Linux下如何使用命令对文件和目录进行操作,这些命令pwd.cd.ls等. 2.1 pwd:显示工作目录路径 使用pwd命令可以显示当前用户所处的工作目录的绝对路径. 2.1.1命令语法: pwd[选项] 2.1.2参数选项: 选项 选项含义 -L 目录链接时,输出链接路径 -P 输出物理路径 2.1.3实例: 例1:显示用户当前工作目录路径. [[email protected] ~]# pwd /root //用户当前的工作路径是root 例2:显示用

关于文件、目录操作的函数

删除目录及目录下的文件(user ShellApi单元) function SHMyDelDirectory(const Source: string): boolean;  var fo: TSHFILEOPSTRUCT;  begin  FillChar(fo, SizeOf(fo), 0);  with fo do  begin  Wnd:= 0;   wFunc := FO_Delete;   pFrom := PChar(Source + #0);    pTo    := #0#0;

MFC常用的字符串、文件、目录操作(双11版本)

修改日志: 1.增加了list容器存储: 2.修改了IsFile 和 IsDir的实现,使区别于IfExistFile和IfExistDir; 3.修改了部分函数的名称: 4.其他细节修改: 首先是头文件: /* ******* StrDirFile.h ********** ********* 字符串.文件.目录操作函数声明 ********** */ /* author: autumoon */ #ifndef _STR_DIR_FILE_ #define _STR_DIR_FILE_ #p

python文件和目录操作函数小结

本文主要介绍python文件和目录操作函数小结,主要涉及到os模块和shutil模块的一些方法. python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r"c:\python")检验给出的路径是否是一个文件:os.path.isf