显示目录文件命令:

  1. 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:表示设备文件里面的穿行端口设备,比如键盘、鼠标。

  1. [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) 每个人都有读写的权限

使用符号修改权限

  1. u 代表拥有者(user)
  2. g 代表拥有者所在的组群(group)
  3. o 代表其他用户,但不是u和g (other)
  4. a 代表全部的人,也就是包括u,g和o
  • +:为文件或目录增加权限
  • -:删除文件或目录的权限
  • =:设置指定的权限

示例:

  1. chomd u+wx test 增加test目录中拥有者可写和可执行的权限
  2. chomd g+wx test 增加test目录中拥有者所在的组群可写和可执行的权限
  3. chmod go-rw test 删除test目录中组群和其他用户的可读和可写的权限
  4. chmod a+x a.txt 等价于 chmod +x a.txt
  5. 给所有用户给予a.txt文件可执行权限
  6. chmod u+x a.txt
  7. a.txt文件的拥有者增加可执行权限
  8. chmod o+w a.txt
  9. 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 系统中的有些文件的属性中包含@符号,如下图所示:

文件,权限,组 - 图1

注意: 通过命令**ls -l**可以查看文件属性
图中@符号表示的是 Mac OS 系统中文件的附加属性,出现该符号表示此文件或者目录具有扩展属性;为什么会出现这个属性?具体原因我也不知道,我所遇到的情况是:当我从一台 Mac 拷贝文件(目录)到另外一台 Mac 时,出现了这个附加属性,此时自己才发现系统中有很多文件都有这个附加属性。

关于附加属性

释义
  1. 标准属性: 比如,创建日期,变更日期,权限
  2. 扩展 (附加) 属性: 存储额外的,可定制的小部分信息,例如: 作者姓名、文件字符编码、短评论、安全状态等
  3. 资源分支: 在 Mac OS X 之前广泛使用,可以认为是一个更精细的扩展属性系统,也可以保存文件的主要数据

查看附加属性
  1. 通过ls -l -@ 文件名来查看文件的附加属性,如下图:
    文件,权限,组 - 图2
  2. 通过xattr命令查看附加属性, 如下图:
    文件,权限,组 - 图3

如何删除附加属性

有的时候如果文件有附加属性,对文件有一定的影响,如无法打开**已经被OS X使用,无法打开, 或者对于可执行文件提示没有权限等,此时我们只需要将附加属性删除掉即可恢复正常,使用xattr命令删除附加属性,如下图所示:

文件,权限,组 - 图4

脚本批量去除:

  1. if [ -f "$INIT_PATH" ];
  2. then
  3. xattr -c "$INIT_PATH"
  4. else
  5. xattr -c -r $INIT_PATH //直接循环文件夹即可
  6. fi