linux学习----Linux文件与目录管理

目录与路径

绝对路径:路径的写法一定要从根目录/写起。
相对路径:不是由根目录/写起。

. 代表此层目录
.. 代表上一层目录

  • 代表前一个工作目录
    ~ 代表"目前用户身份"所在的文件夹
    ~ account代表account这个用户的主文件夹

那么,在根目录下,有没有..目录存在?
".."与根目录自己"."是同一个目录。

cd: 切换目录
pwd:显示当前目录
mkdir:新建一个新的目录
rmdir:删除一个空的目录

pwd -P:显示出当前路径,而非使用link路径
mkdir -P:可以创建多层目录
rm -p:[目录名称] 连同上层的空的目录一起删除
rm -r :连同目录中的文件一起删除

ls -a:全部文件,连同隐藏文件一起列出来
ls -A:列出全部文件,不包括.与..
ls -d:仅列出目录本身,而不是列出目录内的文件数据
ls -l:列出长数据串,包含文件的属性与权限等数据

cp -i:若文件已存在,则操作时会先询问操作的进行
cp -r:递归持续复制,用于目录的复制
cp -p:连同文件的属性一起复制过去,而非使用默认行为(备份常用)

rm -f:忽略不存在的文件,不会出现警告信息
rm -i:互动模式,删除前会询问用户是否操作
rm -r:递归删除,常用在目录删除

支持通配符

将bashsrc开头的文件全部删除

在root环境下,递归删除时,会不断的跳出提示询问是否删除,如果不想看到这些询问,可以在rm前面加上/

当一个文件是" - "开头时,会出现无法删除的情况,我们可以在文件前加入" ./ "

mv -f:强制执行,如果目标文件存在,不会询问而直接覆盖
mv -i:若目标文件存在,就会询问是否覆盖
mv -u:若目标文件存在,且source比较新,才会更新。

如何移动文件到一个文件夹中?

将a文件移动到b文件夹中

如何修改当前文件名字?

修改名字为c的文件c1

如何移动多个文件?

将当前目录中的c1、d文件放入b目录之中

basename:取得最后的文件名
dirname:取得完整的目录名字

文件内容查阅

cat:讲一个文件的内容连续显示在屏幕上
cat -b:列出行号,不包括空白行
cat -E:将结尾度断行字符$显示出来
cat -n:打印出行号,连同空白行也会有行号
cat -T:将Tab键以^I显示出来
cat -v:列出一些看不出来的特殊字符
cat -A:相当于 -vET的整合参数

tac:反向输出
nl:添加行号打印

more:一页一页的翻动

more示例

(空格键):向下翻一页
Enter键:向下翻一行
/字符串:向下搜索该字符串
:f:立即显示出文件名以及当前行数
q:离开more,不再显示该文件内容
b:往回翻页,只对文件有用,对管道没有用处

less:一页一页翻动
(空格键):向下翻一页
[ PageDown ]:向下翻动一页
[ PageUp ]:向上翻动一页
/字符串:向下查询字符串
?字符串:向上查询字符串
n:重复前一个查询
N:反向重复上一个查询
q:离开less

head(取出前面几行)

取出前面几行(默认10行)
取出前20行

如何-n后面接的是负数,代表列出前面所有行数,但不包括后面100行。

tail(取出后面几行)
-n:后面接数字,表示后面几行
-f:表示持续监测后面所接的文件名,摁下ctrl+C才能停止

od(查看非纯文本文件)

查看非纯文本文件

modification time (mtime):当文件的内容数据更改时,就会更新这个时间,内容数据指的是文件的内容,而不是文件的属性。
status time(ctime):当文件的状态改变时,就会更新这个时间。
access time(atime):当改文件的内容被取用时,就会更新这个时间。

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

umask(新建文件的目录权限):umask的分数指的是该默认值要减掉的权限。
如何修改umask的值?

修改umask的值

chattr(设置文件的隐藏属性)
+:增加某一个参数
-:删除某一个参数
=:仅有后面接的参数
a:设置a之后,这个文件只能增加数据,不能删除,也不能修改。
i:让一个文件不能被删除,改名,设置连接,无法写入添加,只有root才能设置这个值。

file:查看文件类型

which:寻找执行文件,默认是找到第一个,加上-a参数就是输出全部找到的结果。

whereis -b:只找二进制的文件
whereis -m:只找在说明文件manual路径下的文件
whereis -s:只找source源文件
whereis -u:查找不在上述三个选项中的其他特殊文件

locate [ 关键词 ]:后面加上部分关键词,就可以完成搜索。
因为locate寻找的数据是由已创建的数据库/var/lib/mlocate里面的数据所查找到的,不用去硬盘中查找数据,这也就是find的速度慢的原因。

但是数据库是每天更新一次的,如果刚刚创建一个文件,那么需要手动更新。updatedb命令进行手动更新数据库。

你可能感兴趣的:(linux学习----Linux文件与目录管理)