Unix & Linux笔记(16)
来源:互联网 发布:淘宝怎么提高买家信誉 编辑:程序博客网 时间:2024/05/16 17:53
第25章 文件操作
25.1 创建文件:touch
改变文件的修改时间和访问时间
touch [ -acm ] [ -t time ] file... -a access time -c no create -m modification time touch -m -t 201312310930 file
25.2 命名文件
使用拓展名非常方便,因为允许使用通配符引用一组文件。
25.3 复制文件:cp
cp [ -ip ] file1 file2 -i interactive -p preserve the same
25.4 将文件复制到不同的目录中:cp
cp [ -ip ] file... directorycp data1 data2 data3 backupscp data[123] backupscp data* backups
25.5 将目录复制到另一个目录中:cp -r
cp -r [ -ip ] directory1... directory2-r recursive(注意ls中递归为ls -R)cp -r essay backups
复制目录中所有文件 cp documents/* backups
复制目录本身及其中包含的所有文件目录 cp -r documents backups
25.6 移动文件:mv
mv [ -if ] file... directory-i interactive-f force
25.7 重命名文件或目录:mv
mv [ -if ] oldname newname使用mv可以同时移动文件和重命名 mv incomplete archive/compete
25.8 删除文件:rm
rm [ -fir ] file...rm *ls data*
25.9 如何防止误删文件:rm –if
25.10 删除整个目录树:rm -r
危险!
在使用之前一定要先用pwd
和ls
,在许多系统上-f
选项覆盖率-i
选项。
25.11 被删除文件恢复的可能性
25.12 文件权限
文件权限 file permission
简称权限(permission)
读权限 read permission
写权限 write permission
执行权限 execute permission
普通文件
目录文件
25.13 setuid
setuid
- 一个特殊的权限设置,允许其他用户标识访问文件,就好像是文件的属主(创建者)一样。(
set userid
)
例:passwd
setuid
只用来允许普通用户标识为了执行某个具体任务而以临时特权来运行程序。
25.14 Unix
维护文件权限的方式:id
、groups
id
groups=500(staff)
(主组),502(admin)
(辅组)
25.15 显示文件权限:ls –
显示目录权限时,在设置-l
的同时还要设置-d
选项。
-rwxrwx--- 1 g staff 4 23:00 a.out
每行的第一个字符是文件类型指示符。
- r
- 读权限
w - 写权限
x
- : 执行权限-
没有权限
Ower Groups Other File
rw- --- - - - a.out
25.16 文件模式
文件模式 file mode
简称模式 (600)
属主的权限 组的权限 其他用户标识的权限
6 0 0
25.17 改变用户权限
chmod mode file...chmod 644 essay
25.18 Unix
为新文件指定权限的方式:umask
用户掩码 user mask
umask [ mode ] umask 002
显示用户掩码的当前值 umask
25.19 清空文件内容:shred
shred -fuzv [ file... ] 多层覆盖硬盘上已有的数据 -f force -u 覆盖后截断并删除文件 -z 最后一次使用0 进行覆盖以隐藏覆盖动作 -v verbose
25.20 链接的概念:stat
、ls -i
i节点(i-node
)
索引节点(index node)
i节点包含是用文件系统所需的全部文件系统信息。
- stat
- 查看某个文件地i节点内容
stat filename
文件系统的i节点表(i node table)
i节点号(i - number)
索引号(index number) ls -i
显示文件的i节点号
目录只包含文件的名称及文件的i节点号。
存放文件的过程:
1.准备存储空间——>2.查找空闲i节点,填充信息——>3.在目录中存放条目
文件名和i节点之间的连接称为链接,链接将文件名与文件连接起来,这就是为什么i节点不包含文件名的原因。
25.21 多重链接
文件的唯一标识符是其i
节点号,而不是它的名称。
链接的基本思想是使同一个文件在不同的环境下可以拥有不同的含义。 Unix
平等地对待所有链接。
在Unix
中,文件不由他们的名称或位置控制,而只受所有权和权限控制。
25.22 创建新链接:ln
为单个文件创建新链接
ln file newname
为一个或多个普通文件创建新链接
ln file... direcrtory
25.23 基本文件命令的工作方式
分析文件命令是要从文件名和链接两方面进行理解。
1. 创建文件,创建目录[ mkdir
]
2. 复制文件[ cp
]
复制已有文件:Unix
用原内容替换目标文件内容,但不修改其i
节点。
复制不存在的文件:Unix
首先用新文件自己的i节点创建一个全新的文件。然后将旧文件的内容复制到新文件中。复制后将会有两个相同的文件,各自对应自己的i节点。
3. 重命名或移动文件[ mv
]
改变文件名或移动目录条目,但保持相同的i
节点号。
4. 创建链接[ ln
]
5. 移除链接[ rm
、rmdir
]
25.24 符号链接:ln –s
相当于windows
的快捷方式
两个问题:1.不能为目录创建链接;2.不能为不同文件系统的文件创建链接。
符号链接 symbol link
/symlink
符号链接包含的不是文件的i节点号,而是原文件的路径名。
常规链接——硬链接(hard link)
符号链接——软链接(soft link)
25.25 目录使用符号链接
mkdir extraln –s extra backupsls -ld extra backups
默认cd -L
25.26 查找与Unix
命令相关的文件:whereis
whereis [ -bms ] command… -b binary -m manual -s source
25.27 通过搜索数据库查看文件:locate
locate [ -bcirS ] pattern...其中pattern是在路径名中查找的模式。 -b basename 例:locate -b temp -c count 例:locate -cr '.jpg$' -i ignorecase 例:locate -i x11 -r 使用正则表达式 例:locate -r '^/user*x114$' -S statistics
25.28 通过搜索目录树查找文件:find
find path... test... action...
例:find /home/g -name important -print
25.29 find
命令:路径
find /usr/binfind /find .find ~
既可以搜索绝对路径名,也可以搜索相对路径名。
find /bin /sbin /usr/bin
可以搜索多个目录。
25.30 find
命令:测试
文件名
-name patter-iname ignorecase文件特征-type [ fdbcpl ] f——regular file-perm mode-usr usrid-group groupid-size [-/+] n [ cbkMG ]-empty访问时间、修改时间-amin [-/+] n access time-anewer file file 文件之后访问-atime [-/+] n n天之前访问-cmin [-/+] n n分钟之前改变状态-cnewer file file 文件之后改变状态-ctime [-/+] n n天之前改变状态-mmin [-/+] n n分钟之前修改-mtime [-/+] n n天之前修改-newer file file文件之后修改
如果使用通配符,则必须将它们引用起来,防止被shell
解释。
例:
find . -type f -name '*.c' -printfind . -type f -name 'data[123]' -print
25.31 find
命令:使用!
运算符对测试求反
使用条件:
1.在!
号两边各留一个空格。
2.必须引用!
,防止被shell
解释。
find ~ -type f /! -name '*.jpg' -printfind ~ -type f '!' -name '*.jpg' -print
25.32 find
命令:处理文件权限错误信息
将标准错误定位到位桶
find / type d -name bin -print 2> /dev/null
25.33 find命令:动作
-print-fprint file 将输出写入到file中-ls 显示长目录列表-fls file 将输出写入到file中-delete 删除文件-exec command { } \; 执行command,{}指示匹配的文件名-ok 同-exec。但是在运行command之前确认对于GNU版本的用户来说,如果不指定路径,则假定工作目录是默认路径,如果不指定动作,则假定-print是默认动作。-ls和-delete的动作的使用类似于将搜索的输出分别发送给ls和rm命令。但是find命令更具有一般性:可以使用-exec动作将搜索输出发送给任何希望的程序。command包含了选项和参数。{ }表示find查找到的路径名,为了表示命令的末尾,必须以;结束命令。
find ~ -type d -exec chmod 700 { } \;
25.34 处理查找到的文件:xargs
xargs [ -prt ] [ -istring ] [ command [ argument…] ]string是占位符find . -type f | xargs echofind . –type f | xargs -i echo { } { }echo对其参数进行求值,并写入到标准输出中。允许使用{ }作为占位符,占位符在命令运行之前被参数取代。 -i insert -p prompt
find . –type f | xargs -i mv { } ~/backups/{ }.old
一定确保不要将-i
选项和其他选项一起使用,xargs
将认为-i
之后的是占位符。
默认xargs
运行指定的命令至少一次,-r
选项告诉xargs
如果没有输入参数,则不运行命令。
- Unix & Linux笔记(16)
- Unix&Linux笔记(5)
- Unix & Linux笔记(6)
- Unix & Linux笔记(8)
- Unix & Linux 笔记(9)
- Unix & Linux 笔记(10)
- Unix & Linux笔记(11)
- Unix & Linux 笔记(12)
- Unix & Linux笔记(14)
- Unix & Linux笔记(15)
- Unix & Linux笔记(17)
- Linux笔记(5):UNIX 命令
- Linux/Unix笔记
- linux/unix实用笔记
- UNIX(LINUX)学习笔记
- Unix & Linux笔记(7)
- Unix & Linux笔记(13)
- Unix Linux笔记
- OS X 快捷键——下篇
- Docker学习笔记4.2-Dockerfile指令详述
- Leetcode 111. Minimum Depth of Binary Tree
- IEEE 802.15.4协议完整中文版 - 3.2 缩略语和简写
- C++ map 中的reverse_iterator
- Unix & Linux笔记(16)
- 二叉树前序,中序,后序求法
- websocket服务端PHP代码
- 修改代码
- MAC OS下JDK版本切换指南
- 内外网同时上网的方法
- Android开发:利用AlarmManager不间断向服务器发送请求以及notification通知
- MTSimpleAdapter框架扩展——添加empty页面、error页面和loading等特性
- 同步代码块什么时候释放锁