linux(2)文件和目录管理(新增,删除,复制,移动,文件和目录权限,文件查找)

一.目录与路径

1.相对路径与绝对路径
绝对路径:/开头, cd /usr
相对路径:cd ../..
2.目录操作(cd:change directory)
.:当前目录
..:上一层目录
-:上一个目录
~:当前用户所在的家目录,
~用户名:用户名的家目录 如:
[yuanyuan@localhost Desktop]$ cd ~yuanyuan
[yuanyuan@localhost ~]$ pwd
/home/yuanyuan
pwd(print working directory):打印路径,pwd -P 显示绝对路径,特别是对于链接文件 /var/mail
[yuanyuan@localhost mail]$ pwd
/var/mail
[yuanyuan@localhost mail]$ pwd -P
/var/spool/mail
3.目录和文件操作:
mkdir(-p):创建新目录 ,(-m) 加权限,如: mkdir -m 771 -p test/test
rmdir(-p ):删除目录 ,如:rmdir -p test/test ,强制删除目录下的内容:rm -rf 文件路径
PATH: echo $PATH path设置的搜索路径 ,直接执行: /bin/ls 不加cd , 添加类似的文件: PATH="PATH"/mnt
cp:cp -i(询问)/-r(目录递归)/-u(太旧,更新) 源文件 目的文件目录 (复制后成为目的文件的权限)
cp -l/-s: 源文件 目的文件 复制一个链接,建立一个符号链接文件 cp -p/-a: 包括源文件的权限一起复制过来
rm: rm -rf 递归删除
mv:-i(询问),-f(强制移动),-u(源文件比较新才更新)
获取文件/目录路径:dirname /basename
[yuanyuan@localhost bin]$ dirname /home
/
[yuanyuan@localhost bin]$ basename /home
home
touch:创建一个文件
3.查看文件内容:(-n显示行号 -n 数字 显示几行)
cat(concatenate连续):从第一行开始显示文件内容
tac:从最后一行开始显示文件内容
more:一页一页显示文件内容
less:同上,不过可以向前翻页
head:只看前几行
tail:只看后几行 ,tail -f 动态监控
od:od -t 类型(a/c/d/f/o/x) 读取二进制文件可以用这个,不会乱码,如 od -t c /usr/bin/passwd
(1)文件的三个时间:
mtime:修改文件内容的时间,ls显示的是这个时间
ctime:修改文件属性的时间,访问的话可以用 ls -l --time=ctime 文件名
atime:访问文件的时间
(2)修改文件时间:
touch -a 修改访问时间atime
touch -d "2 days ago" 文件名:修改ctime
touch -t 1602141212 文件名:修改atime和mtime
touch有两个作用:一个是创建文件,一个是修改文件的各种时间
4.文件与目录的默认权限与隐藏权限
例:用户身份a ,用户组为 users,家目录在/home/a,若root将~/.bash复制给a,则操作如下:
cp ~/.bash ~a/.bash1 //重命名,避免覆盖 chown a:users ~a/bash1 //修改用户所在组,因为复制过来时都是root权限
(1)umask :去掉的权限,对于root是022,对于一般用户是002
创建文件:644
创建文件夹:755
(2)隐藏属性:chattr 和 lsattr
chattr +i 文件名/目录名 :则该文件不能做任何修改,root也不行,只有 -i后才可以 (主要用于系统安全性方面)
lsattr:隐藏文件的属性也一起显示出来
(3)文件特殊权限
SUID:只针对文件,如 -rwsrw-r-- 此时出现s,说明set uid ,用户有root的权限,例如 /etc/passwd 和 /etc/shadow 只能root看,但是用户可以修改自己的密码,就是此原因
SGID
Sticky Bit(SBIT):仅针对目录
file   文件名:查看文件所属类型
5.搜索文件
先用whereis 和locate,在数据库搜索,linux系统会将所有文件放在一个数据库文件中,实际很少用find ,因为它是在硬盘中进行搜索,速度慢,消耗硬盘空间
which:-a 找出所有的执行文件
whereis :-b 只找二进制文件 -s 只找源文件 如:whereis passwd
locate:locate 文件名 ,缺点:需要数据库更新,新增的不能找到
find:find 路径 条件 动作

例如:
(1)24小时内更改过内容: find / -mtime 0 (0指当前时间往前推一天) 若是3,则是前3-4之间那一天
(2)比哪个文件新:-newer
(3)属于用户/不属于 -user %% 或者 -nouser
(4)查找文件名为: -name  '*aaa*' 类型用 -type f(s,b,l,c,p)
(5)查找大于多少: +size 1000k
(6)查找后执行: find / -user yuanyuan -name b -type f exec ls -l {} ( exec 后为执行命令,{}表示查找的内容,必须以结尾)


原文地址:https://www.cnblogs.com/alwayswyy/p/5160066.html