03_文件与目录管理,03目录管理


说明:

本博客包括了linux常用的文件目录操作以及特殊权限还有文件查找(2017-02-28)

一.目录与路径

1.目录相关操作

cd ~zhao     到该用户文件夹

pwd       显示当当前路径

pwd -P       显示当前路径,而非连接路径

 

mkdir -m 711 test/        m:配置文件权限

mkdir -p test1/test2/test3    p:将目录递归地建立起来

rmdir -p test2         连同上层空目录也删除

 

2.执行文件路径的变量 $PATH

echo $PATH       查看被定义的目录

当目录没有被定义时可以使用绝对路径来执行

添加文件路径:

PATH="$PATH":/root   将/root目录添加到路径

本目录(.)最好不要放到PATH中

 

二.文件与目录管理

1.ls

ls -l == ll

ls -a

ls -d   仅列出目录本身

 

2.cp,rm,mv

cp   源文件   目标文件

默认条件下源文件和目标文件的权限是不同

-r   目录递归复制

-i   存在时询问

-s     复制为连接文件,会有指向

-d    若源文件为连接文件的属性,则复制连接文件属性二非文件本身

 

rm   源文件或者目录

-f :  强制

-r :  递归删除

-i :  提示

 

mv   移动或更名

多文件复制

mv c1 c2 c3   c3必然是目录 

 

basename     取路径的文件名   basename /home/zhao/abc.c     abc.c

dirname      取路径的目录名   dirname /home/zhao/abc.c    /home/zhao

 

 

三.文件内容与查阅

1.cat tac nl

cat -n file   打印行号(包括空白)

cat -b file   打印行号(不包括空白)

tac file    反向列示

nl file   添加行号打印

 

2.翻页查看

more   一页一页翻

/string    向下查询

:     显示文件名及当前行数

b:   往回翻页

q:   离开

 

less

/str    向下查询字符串

?str   向上查询字符串

n    重复前一个查询

N    反向重复前一个查询

 

3.数据选取

head -n number file   默认10行

tail -n number file    默认10行

 

4.非纯文本文件 od

od -t [type] file

type:

a:     默认字符串输出

c:     ascii 字符输出

d[size]:    十进制输出,每个数据占sizebyte

f:     浮点

o:      八进制

x:      16进制

od -t c /usr/bin/passwd

od -t cCo /etc/issue 八进制和ASCII对照

 

5.touch

mtime:   内容数据更改时的时间

ctime:   权限和属性被更改的时间

atime:   文件内容被读取的时间

 

ls 默认为 mtime

ls -l --time=atime file

ls -l --time=ctime file

 

touch [-acdmt] file

a:  仅修改访问时间

c:  仅修爱文件时间

m:    仅修改mtime

t:   接欲修改时间[YYMMDDhhmm]

 

ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc   ; 连续命令行

touch -(m)t 0709150202 file             将文件时间修改为2007年9月15日 2:02

  

四.文件与目录的默认权限与隐藏权限

1.文件默认权限 umask(目前用户新建时的权限)

文件默认没有执行权限

文件  -rw-rw-rw-

目录    drwxrwxrwx

umask 0022   后三位代表要减掉的权限

umask -S      直接显示权限(u=rwx,g=rwx,o=rx)

umask 002    设置默认权限为775 不要数值直接相减

 

2.文件隐藏属性 chattr,lsattr

chattr [+-=] [ASacdistu]   file or dir

a:   只能向文件增加数据,而不能删除也不能修改(如log)

i:    设置文件内容不能被更改,删除

chattr +i file

rm file 无法删除,修改属性后才能删除

chattr -i file

 

lsattr 显示文件隐藏属性

lsattr [-adR] 文件或目录

-a 包含隐藏文件

-d 若时目录则仅显示目录,不显示文件

-R 子目录数据也列出来

 

3.文件特殊权限 SUID,SGID,SBIT

SUID /usr/bin/passwd 一般用户无法访问,但是文件中自己的密码可以修改

-rwsr-xr-x s

SGID 有s的用户组为SGID

SBIT 针对目录,拥有目录权限,但是只能删除自己创建的文件,对其他文件则无法修改

SUID:4 SGID:2 SBIT1

chmod 4755 test 4加入具有SUID的权限

chmod u=rwxs,go=x test

chmod g+s,o+s test

 

4.查看文件类型 file

file filename


四.命令与文件的查询

1.脚本文件名

which command 寻找执行文件

which ifconfig           /sbin/ifconfig

 

2.文件名

whereis 寻找特定文件

whereis [-bmsu] 文件名或目录

b:只找二进制文件

s:只找源文件

 

locate [-ir] keyword

-i 忽略大小写

-r 可接受正则表达式的显示方式

updatedb 更新查找数据库

 

find [PATH] [option] [action]

-mtime n n天之前的一天之内被更改的文件

-mtime +n n天之前不含n天本身被更改的文件

-mtime -n n天之内包含n天本身被更改的文件

-newer file 列出比file更新的文件

find / -mtime 0         24h内的文件

find /etc -newer /etc/passwd 找出比passwd更新的文件

 

find /home -user zhao    /home下属于zhao的文件

find / -nouser        不属于任何人的文件

find / -name passwd     找出文件名为passwd的这个文件

find /var -type s       找出该目录下文件类型为Socket的文件

 

find / -perm  7000       查找文件当中含有SGID或SUID或SBIT的属性

find / -size +1000k      大于1M的文件

find / -perm  7000 -exec ls -l {}\;    find的内容保存到{}中,然后再执行ls -l命令

 

相关内容