inode

Linux文件系统管理

爱⌒轻易说出口 提交于 2019-12-15 16:51:15
(整理自《鸟哥的Linux私房菜》书籍) 1. 文件系统特性 我们都知道磁盘分区完毕后还需要进行格式化(format),之后操作系统才能够使用这个文件系统。 为什么需要进行『格式化』呢?这是因为每种操作系统所设定的文件属性/权限并不相同, 为了存放这些文件所需的数据,因此就需要将分区槽进行格式化,以成为操作系统能够利用的文件系统格式(filesystem)。 一个可被挂载的数据为一个文件系统而不是一个分区槽。 文件系统是如何运作的? 这与操作系统的文件数据有关。较新的操作系统的文件数据除了文件实际内容外, 通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。 每个 inode 与 block 都有编号,至于这三个数据的意义可以简略说明如下: • superblock:记录此 filesystem 的整体信息,包括 inode/block 的总量、使用量、剩余量, 以及文件系统的格式与相关信息等; • inode:记录文件的属性,一个文件占用一个 inode

XSLT or XPath: how to find a node with a specific tag and text then extract it into a new xml file?

吃可爱长大的小学妹 提交于 2019-12-13 02:03:30
问题 I need to find a particular node in an xml file, <example>Some text</example> Then I want to extract this node and it's subelements from the xml file and write it into a new xml file and I then need to extract the other remaining xml nodes in the original xml file minus the extracted node into the new xml file following the extracted node. How can I do this with xslt or xpath? 回答1: Here is how to output all nodes minus the specific node and its subtree : <xsl:stylesheet version="1.0" xmlns

实现mypwd——20175204张湲祯

只愿长相守 提交于 2019-12-11 18:43:08
实现mypwd 任务要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 提交过程博客的链接 任务一:学习pwd命令 任务步骤: 1.pwd命令详解: pwd命令功能是显示当前所在工作目录的全路径吗,可以通过pwd来查看当前目录的绝对路径。 2.pwd命令参数: -L:--logical,显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式)。 -p:--physical,显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件。 当包含多层连接文件时,显示连接文件最终指向的文件。 3.在Linux下学习pwd命令: 使用 man pwd 使用 man -k pwd 学习 4.使用pwd命令 任务二:研究pwd实现需要的系统调用(man -k; grep),写出伪代码 任务步骤: 1.pwd实现原理:pwd以绝对路径打印当前的工作目录,可以从当前目录逐层向根目录进行查找,当找到根目录,即可得到完全路径。而系统通过inode来管理文件,每个文件都有inode号(目录是特殊的文件,每个目录下有两个特殊的文件名.(当前目录)和..(父目录))。不断向前寻找到达根目录时没有父目录,两个特殊的文件名.和..仍然存在于根目录中,他们inode号相同表示同一目录

Save information from sprintf to a variable

孤人 提交于 2019-12-11 16:21:13
问题 is it possible to save information gather from a sprintf into a variable? The lines of code below are an example to better illustrate my question. char fileName; fileName = sprintf(command, "find -inum %i -type f", iNode); The purpose is to find the file name associated with the inode number, then run "stat" on that file name. 回答1: I think you want something like this: FILE *fp; char cmd[1024]; char filename[1024]; sprintf(cmd, "find -inum %i -type f", iNode); fp = popen(cmd); fgets(filename,

linux命令df中df -h和df -i的区别

試著忘記壹切 提交于 2019-12-11 05:28:26
df 命令: linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 1.命令格式: df [选项] [文件] 2.命令功能: 显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。 3.命令参数: 必要参数: -a 全部文件系统列表 -h 方便阅读方式显示 -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024 -i 显示inode信息 -k 区块为1024字节 -l 只显示本地文件系统 -m 区块为1048576字节 –no-sync 忽略 sync 命令 -P 输出格式为POSIX –sync 在取得磁盘信息前,先执行sync命令 -T 文件系统类型 选择参数: –block-size=<区块大小> 指定区块大小 -t<文件系统类型> 只显示选定文件系统的磁盘信息 -x<文件系统类型> 不显示选定文件系统的磁盘信息 –help 显示帮助信息 –version 显示版本信息 “df -h”这条命令再熟悉不过。以更易读的方式显示目前磁盘空间和使用情况。 “df -i”

Ubuntu中恢复rm命令误删文件(超级详细+亲测有效)

假装没事ソ 提交于 2019-12-11 05:07:01
在实验室做项目时使用的是ubuntu16.04 某次开发时打字太快从而误删除别的文件,而且还是很重要的文件,ubuntu没有像windows一样的回收站,因此删完就没了,只能通过其他办法恢复。 第一步:进入误删除文件的目录内,查看被删文件的挂载分区 如 cd /home/conference 进入到conference目录,原来的误删除的文件处于此目录内 使用df -h命令查看此目录的挂载分区,如/dev/sda1是误删文件所在的分区 第二步: 安装恢复工具extundelete 使用命令: sudo apt-get install extundelete 第三步:恢复文件 使用命令: sudo extundelete /dev/sda1 --restore-all 通过以上三步骤后,会在当前目录中生成一个名为RECOVERED_FILES目录,并且将恢复的文件放到这个目录中,然后自己去一个一个找需要用到的文件。 (1)查找已经删除的文件,通过inode号来查找,命令如下: extundelete --inode ${inode_num} ${dev_describer} 其中,inode_num是文件系统的inode号,dev_describer是误删文件所在的磁盘分区的设备描述符 如果不知道误删文件inode号,就直接填2,它会从根目录开始找

Linux基础之文件系统

删除回忆录丶 提交于 2019-12-10 20:40:42
什么是文件系统?   文件系统是操作系统对存储设备上文件一种管理机制,不同的管理机制形成了不同的文件系统; 文件系统划分   按IO栈的层级来分,可以分为VFS和具体文件系统两层。VFS屏蔽不同的文件系统,向上提供统一的访问接口,具体的文件系统则为具体的文件系统实现,比如ext4、overlayfs等;   按存储介质的不同,文件系统可以分为三类: 基于磁盘的文件系统,常见的有Ext4、XFS、OverlayFS 等文件系统; 基于内存的文件系统,比如常用的 /proc 文件系统; 网络文件系统,也就是用来访问其他计算机数据的文件系统,比如 NFS、SMB、iSCSI 等; 挂载点 查看文件系统挂载点 df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu-root 909G 565G 299G 66% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 3.9G 4.0K 3.9G 1% /dev tmpfs 785M 1.2M 784M 1% /run none 5.0M 0 5.0M 0% /run/lock none 3.9G 62M 3.8G 2% /run/shm none 100M 48K 100M 1% /run/user /dev/sda1 228M

俗话说,一回生二回熟,日积月累方能始终。(第二周)

六月ゝ 毕业季﹏ 提交于 2019-12-09 15:22:28
一,描述Linux发行版的系统目录名称命名规则以及用途。 1,版本命名规则: 内核版本由三部分组成:主版本号、次版本号、末版本号 开发版本:第二位数字是奇数 稳定版本:第二位数字是偶数 2,文件与目录命名规则: 文件名:字母、数字、下划线、圆点 普通文件 - (黑色) 目录文件 d (蓝色) 链接文件 l (亮蓝色) 特殊文件 cd (黄色) 配置文件 .conf 日志文件 .log 系统日志文件 .syslog 系统配置文件 .cfg 系统文件 .i386 脚本文件 .sh 3,FHS:Filesystem Hierarchy Standard /bin:所有用户可用的基本命令程序文件; /sbin:系统管理使用的工具程序; /boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等; /dev:存储特殊文件或设备文件; 设备有两种类型:字符设备(线性设备,时序的)、块设备(随机设备,随意访问); /etc:系统程序的配置文件,只能为静态; /home:普通的家目录的集中位置(特有的);一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME; /root:管理员的家目录;可选; /lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块 libc

Maximum file size given a particular inode structure?

浪尽此生 提交于 2019-12-09 02:33:06
问题 Suppose a UNIX file system has some constraints--say, 2 KB blocks and 8B disk addresses. What is the maximum file size if inodes contain 13 direct entries, and one single, double, and triple indirect entry each? 回答1: This explains it for you: http://www.cis.temple.edu/~ingargio/cis307/readings/stable.html "The maximum size of a file will be 8KB*(10 + 2**10 + 2**20 + 2**30), that is more than 8TB." Swap 8KB for your 2KB, and adjust the entries for the smaller block size. 2KB*(10 + 2**8 + 2**16

Running out of inodes on a docker volume

北战南征 提交于 2019-12-07 20:03:49
问题 I have the following docker-compos.yml file: web: build: . ports: - "4200:4200" - "35729:35729" volumes: - ..:/code - ../home:/home/dev which maps the 2 volumes above. When I login into my VM and run df -i i see Filesystem Inodes IUsed IFree IUse% Mounted on none 1218224 509534 708690 42% / tmpfs 256337 18 256319 1% /dev shm 256337 1 256336 1% /dev/shm tmpfs 256337 11 256326 1% /sys/fs/cgroup none 1000 0 1000 0% /code none 1000 0 1000 0% /home/dev /dev/sda1 1218224 509534 708690 42% /etc