15、Linux 文件属性和测试( chgrp,chown,chmod和

时间:2021-08-31 16:42:30

 

一、更改文件属性

1、chgrp:更改文件属组

语法:

chgrp [-R] 属组名文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown:更改文件属主,也可以同时更改文件属组

语法:

   chown [–R] 属主名 文件名

   chown [-R] 属主名:属组名 文件名

   

3、chmod:更改文件9个属性

     Linux文件属性有两种设置方法,一种是数字,一种是符号。Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

 chmod [-R] 755 文件或目录 # r:4 w:2 x:1

   符号类型改变文件权限

   还有一个改变权限的方法呦!九个权限分别是(1)user (2)group (3)others三种身份啦! 那么我们就可以藉由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!

   如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

chmod u
g
o
a
+(加入)
-(除去)
=(设定)
r
w
x
文件或目录

   

 

 

 二、  文件测试  

          -e:判断文件是否存在  

  •     在创建新文件程序之前,应先检查指定的文件是否已经存在,以免意外覆盖重要的电子表格或是宝贵的生日档案。要达到此目的,我们可以用-e文件测试操作符来测试文件是否存在:  
  •         die "Oops ! A file called '$filename' already exists.\n";  if -e $filename;  
  •     -s:查找硬盘中的文件的大小  
  •         my @original_files = qw /fred barney betty wilma pebbles dino bamm-bamm /;  
  •        my @big_old_files; #将要移到备份磁带上的既大且旧的文件列表  
  •         foreach my $filename (@original_files)  
  •         {  
  •             push @big_old_files, $filename  if -s $filename > 100_000 and -A $filename > 90;  
  •         }  
  •  文件测试操作符    意义   -r              文件或目录,对目前(有效的)用户或组来说是可读的  
  •  -w              文件或目录,对目前(有效的)用户或组来说是可写的  
  •  -x              文件或目录,对目前(有效的)用户或组来说是可执行的  
  •  -o              文件或目录,由目前(有效的)用户拥有  
  •  -R              文件或目录,对实际的用户或组来说是可读的  
  •  -W              文件或目录,对实际的用户或组来说是可写的  
  •  -X              文件或目录,对实际的用户或组来说是可执行的  
  •  -O              文件或目录,由实际的用户拥有  
  • -e              文件或目录是存在的  
  •  -z              文件存在且没有内容(对目录来说永远为假)  
  •  -s              文件或目录存在而且有内容(返回值是以字节为单位的文件的大小)  
  •  -f              是普通文件  
  • -d              是目录  
  •  -l              是符号链接  
  • 测试同一文件的多项属性: 可读又可写  if(-r $file and -w $file)   {   ... }