显示目录文件命令:
ls :显示文件名<br /> -L :文件详细信息<br /> -a :同时显示隐藏文件<br /> ls 目录名:显示此目录下的文件
-L 显示的文件列表各项解释:
-rwxr-xr-x 1 zhaochun staff 567B 10 16 2015 server.php
整体上属性分七栏
第一栏 [文件属性]
第二栏 [文件数]
第三栏 [拥有者(所有者)]
第四栏 [所有者群组]
第五栏 [大小]
第六栏 [建档日期]
第七栏 [档名]
-rw-rw-r— 是这个文件 用户执行权限
例如:
[-][rwx][r-x][r—]
[-] 代表文件(d为目录)
l:表示链接文件(linkfile)
b:表示设备文件里面的可供存储的接口设备
c:表示设备文件里面的穿行端口设备,比如键盘、鼠标。
[rwx] 拥有人的权限(rwx为可读、可写、可执行)<br /> [r-x]为:同群组的使用者(当前用户所在的这个组的成员)权限(r-x为可读可执行)<br />如当前登录电脑的用户在一个组里,可设置这个组里的其他成员的权限<br /> [r--]为:其它使用者(用户)权限(r--为仅可读)
如PHP文件操作函数要往一个文件里写入东西,这个文件属于用户a,a组;我的Apache不属于a组,所以为其它使用者,此时这个文件的其它使用者的权限为w,Apache才能写入成功。
Mac下文件权限有时候还会出现@符号 ,如:-rw-rw-rw-@;是因为这个文件有扩展属性,不影响访问的话不用管,如果影响的话,查看文末的去除方法;
权限
4:r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
2:w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
1:x(eXecute,执行):对文件而言,具有执行文件的权限,如执行脚本文件;对目录了来说,该用户具有进入目录的权限。对进入目录并浏览目录文件的操作,要有r和x的权限
通过4、2、1的组合,得到以下几种权限:
0:没有任何权限 :—-
1:执行权限 :—x
2:写入权限 :-w-
3:执行权限和写入权限:1 (执行) + 2 (写入) = 3 :-wx
4:读取权限 :r—
5:读取和执行权限:4 (读取) + 1 (执行) = 5 :r-x
6:读取和写入权限:4 (读取) + 2 (写入) = 6 :rw-
7:所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 :rwx
常用组合:
-rw——- (600) 只有所有者才有读和写的权限
-rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx—— (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
使用符号修改权限
- u 代表拥有者(user)
- g 代表拥有者所在的组群(group)
- o 代表其他用户,但不是u和g (other)
- a 代表全部的人,也就是包括u,g和o
- +:为文件或目录增加权限
- -:删除文件或目录的权限
- =:设置指定的权限
示例:
chomd u+wx test 增加test目录中拥有者可写和可执行的权限
chomd g+wx test 增加test目录中拥有者所在的组群可写和可执行的权限
chmod go-rw test 删除test目录中组群和其他用户的可读和可写的权限
chmod a+x a.txt 等价于 chmod +x a.txt
给所有用户给予a.txt文件可执行权限
chmod u+x a.txt
a.txt文件的拥有者增加可执行权限
chmod o+w a.txt
a.txt的其他用户增加读写的权限,如果之前的权限是5(读和执行),加w的权限之后,就是读写执行的7权限
使用数字修改权限:
(三位数字,每一位分别代表:[rwx] [r-x] [r—])
4表示r,读
2表示w,写
1表示x,执行
0表示-,没权限
chmod 774 文件名
递归修改权限(将此目标以及此目录里的所有目录都修改权限)
chmod -R 777 目录名
给当前目录下的所有文件修改权限
sudo chmod 666 *
修改 拥有者 所属群组
chgrp 变更文件或目录的所属群组。要更改的用户组,必须存在于“/etc/group”下 cat /etc/group
chown 将文件或目录的拥有者改为指定的用户或组 所有者必须在 cat /etc/passwd 下的用户
其实在实际使用中,chown 完全可以替代 chgrp ,而且最有用的参数只有一个,就是用于递归处理的 -R
“log2012.log” 的所属组更改为 bin
chgrp bin log2012.log
—-xrw-r— 1 root bin 302108 11-13 06:03 log2012.log
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
文件常用命令
创建目录:
mkdir 目录名
创建多层目录:(先创建1,在1文件里创建2…)
mkdir -p 1/2/3/4/5/6
创建文件:
touch 1.txt
查找文件:
find / -name httpd.conf #在根目录下查找文件httpd.conf,
复制:
将1.txt复制到上层目录
cp 1.txt ../
递归复制 -r
amulu里还有文件,所以将a目录复制到b目录里需要将-r,
cp -r amulu bmulu
剪切:
mv 1.txt ../
重命名
可使用cp或者mv进行重命名
将1.txt 改名2.txt
mv 1.txt 2.txt
删除:
rm :移除,remove的意思
-f或–force 强制删除文件或目录。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
删除文件夹实例:
rm -rf /var/log
将会删除/var/log目录以及其下所有文件、文件夹
删除文件使用实例:
rm -f /var/log/access.log
将会强制删除/var/log/access.log这个文件
mac文件权限@符号问题
本文由 简悦 SimpRead 转码, 原文地址 www.jianshu.com
前言
不知道有没有朋友发现,在 Mac 系统中的有些文件的属性中包含@
符号,如下图所示:
注意: 通过命令**ls -l**
可以查看文件属性
图中@
符号表示的是 Mac OS 系统中文件的附加属性,出现该符号表示此文件或者目录具有扩展属性;为什么会出现这个属性?具体原因我也不知道,我所遇到的情况是:当我从一台 Mac 拷贝文件(目录)到另外一台 Mac 时,出现了这个附加属性,此时自己才发现系统中有很多文件都有这个附加属性。
关于附加属性
释义
- 标准属性: 比如,创建日期,变更日期,权限
- 扩展 (附加) 属性: 存储额外的,可定制的小部分信息,例如: 作者姓名、文件字符编码、短评论、安全状态等
- 资源分支: 在 Mac OS X 之前广泛使用,可以认为是一个更精细的扩展属性系统,也可以保存文件的主要数据
查看附加属性
- 通过
ls -l -@ 文件名
来查看文件的附加属性,如下图:
- 通过
xattr
命令查看附加属性, 如下图:
如何删除附加属性
有的时候如果文件有附加属性,对文件有一定的影响,如无法打开**已经被OS X使用,无法打开
, 或者对于可执行文件提示没有权限等,此时我们只需要将附加属性删除掉即可恢复正常,使用xattr
命令删除附加属性,如下图所示:
脚本批量去除:
if [ -f "$INIT_PATH" ];
then
xattr -c "$INIT_PATH"
else
xattr -c -r $INIT_PATH //直接循环文件夹即可
fi