linux——(3)文件与目录管理
文件与目录管理相关指令
ls [-adlR] 目录 #查看目录与文件的命令。
-a #连同隐藏文件一起列出来。
-d #只列出目录。
-l #列出相关属性和权限等数据。
-R #连同子目录内容一起列出来。
cp [-apdrils] source destination #复制命令。
-p #连同文件的属性一起复制过去而不是使用默认属性。
-d #若source为连接文件则复制连接文件而不是文件本身。
-r #递归持续复制,用于目录的复制行为。
-a #等同于-pdr。
-i #若是destination已经存在,则会在覆盖时再次询问是否进行操作。
-l #创建hard link文件。
-s #创建symbolic link文件。
-u #destination已存在时,只有source更新的时候会覆盖。
rm [-ir] 文件或者目录
-i #互动模式,删除前会再次询问。
-r #递归删除。
mv [-iu] source destination
-i #若destination已经存在会再次询问。
-u #destination已存在时,只有source更新的时候会覆盖。
basename 路径 #取得路径中的文件名。
dirname 路径 #取得路径中的目录。
文件内容相关指令
cat [-nb] #打印文件内容。
-n #显示行号,空白行也显示。
-b #显示行号,空白行不显示。
tac #反向打印文件内容。
nl #打印行号,默认不显示空白行行号。
more #逐行显示,能往后翻页,不能往前。
less #可以前后翻页。
head [-n number] #显示头number行。
tail [-n number] #显示尾部number行。
od [-t type] #打开二进制文件。
-t #控制输出类型。
a :利用默认字符输出。
c :用ASCII码值输出。
touch 文件名 #默认情况下更新mtime、ctime、atime三个时间。
file 文件 #查看文件类型。
文件与命令查询相关的指令
which [-a] command #查询命令的存放位置,是在PATH中查找,所以用户不同,查询结果可能不一样。
-a #列出PATH中能找到的所有要找的命令,而不是第一个。
whereis [-bmsu] 文件或目录名 #查询利用数据库不是查磁盘所以比较快。
-b #只找二进制文件。
-m #只找在说明文件manual路径下的文件。
-s #只找source源文件。
-u #找除了上述以外的文件。
locate [-ir] keyword #只需要输入部分文件名就可以定位。
-i #忽略大小写。
-r #可以接正则表达式。
updatedb #更新/var/lib/mlocate内的数据库文件。
find [PATH] [option] [action] 用法很灵活也很复杂,略。
概念:文件目录的默认权限与隐藏权限。
可以用umask来查询默认被排除的权限。root和非root用户umask值不一样。
文件特殊权限有SUID、SGID、SBIT。
SUID:缩写是s,出现在文件所有者的x权限上,仅对二进制文件有效,执行者必须有x权限,执行这个文件的用户将具有文件拥有者的权限,仅限执行文件的阶段。
SGID:缩写是s,出现在用户组的x权限上,针对文件的时候,和SUID很像,处理获得的权限是用户组以为。针对目录的时候,如果用户有rx权限,进入此目录后,用户将在此目录拥有该用户组的权限。
SBIT:缩写是t,只对目录有效,当用户有wx权限时,用户在该目录下创建的文件和目录只有自己和root 能删掉。
相关操作:
chmod 的时候用四位数来设置权限,第一位就是针对上述3个权限的。
关于文件隐藏属性的设置与查看chattr、lsattr(列举部分)
chattr [+-=] [aic] 文件或者目录 #设置隐藏属性。
-a #这个文件只能增加数据,不能删除也不能修改,这有root能设置。
-i #这个文件不能被删除、改名、设置连接、写入或者添加数据,只有root能设置。
-c #这个文件会被自动压缩,读取时会自动解压。
lsattr [-adR] 文件或目录 #查看隐藏属性。
-a #将隐藏文件的属性也列出来。
-d #如果连接的是目录,列出目录本身的属性。
-R #连同子目录的数据属性也列出来。
参考资料:《鸟哥的Linux私房菜》