Linux的文件和目录管理

1 查看文件与目录:ls

[[email protected] ~]# ls [-aAdfFhilnrRSt] 目录名称
[[email protected] ~]# ls [--color={never,auto,always}] 目录名称
[[email protected] ~]# ls [--full-time] 目录名称
选项与参数:
-a  :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-A  :全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录
-d  :仅列出目录本身,而不是列出目录内的文件数据(常用)
-f  :直接列出结果,而不进行排序 (ls 默认会以档名排序!)
-F  :根据文件、目录等资讯,给予附加数据结构,例如:
      *:代表可运行档; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件;
-h  :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来;
-i  :列出 inode 号码,inode 的意义下一章将会介绍;
-l  :长数据串列出,包含文件的属性与权限等等数据;(常用)
-n  :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!)
-r  :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R  :连同子目录内容一起列出来,等於该目录下的所有文件都会显示出来;
-S  :以文件容量大小排序,而不是用档名排序;
-t  :依时间排序,而不是用档名。
--color=never  :不要依据文件特性给予颜色显示;
--color=always :显示颜色
--color=auto   :让系统自行依据配置来判断是否给予颜色
--full-time    :以完整时间模式 (包含年、月、日、时、分) 输出
--time={atime,ctime} :输出 access 时间或改变权限属性时间 (ctime)
                       而非内容变更时间 (modification time)
Example:
范例一:将家目录下的所有文件列出来(含属性与隐藏档)
[[email protected] ~]# ls -al ~
total 156
drwxr-x---  4 root root  4096 Sep 24 00:07 .
drwxr-xr-x 23 root root  4096 Sep 22 12:09 ..
-rw-------  1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
-rw-------  1 root root   955 Sep 24 00:08 .bash_history
-rw-r--r--  1 root root    24 Jan  6  2007 .bash_logout
-rw-r--r--  1 root root   191 Jan  6  2007 .bash_profile
-rw-r--r--  1 root root   176 Jan  6  2007 .bashrc
drwx------  3 root root  4096 Sep  5 10:37 .gconf
-rw-r--r--  1 root root 42304 Sep  4 18:26 install.log
-rw-r--r--  1 root root  5661 Sep  4 18:25 install.log.syslog
# 这个时候你会看到以 . 为开头的几个文件,以及目录档 (.) (..) .gconf 等等,
# 不过,目录档档名都是以深蓝色显示,有点不容易看清楚就是了。

2 复制文件和目录cp

-d 复制时保留原链接

-p 保留源文件或目录的属性,包括所有者、所属组、权限与时间等等

-R 递归处理,将目录下的文件及子目录一并处理

-a 相当于dpR的组合,将mode,group owner(若有权限)都复制过来

-f 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 覆盖文件之前先询问用户,交互式复制

-l 进行硬链接(hard link),而非复制文件

-s 复制成为符号链接文件(symbolic link),也就是创建“快捷方式”

example

范例一:用root身份,将家目录下的 .bashrc 复制到 /tmp 下,并更名为 bashrc
[[email protected] ~]# cp ~/.bashrc /tmp/bashrc
[[email protected] ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc‘? n  <==n不覆盖,y为覆盖
# 重复作两次动作,由於 /tmp 底下已经存在 bashrc 了,加上 -i 选项后,
# 则在覆盖前会询问使用者是否确定!可以按下 n 或者 y 来二次确认呢!

范例二:变换目录到/tmp,并将/var/log/wtmp复制到/tmp且观察属性:
[[email protected] ~]# cd /tmp
[[email protected] tmp]# cp /var/log/wtmp . <==想要复制到目前的目录,最后的 . 不要忘
[[email protected] tmp]# ls -l /var/log/wtmp wtmp
-rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp
-rw-r--r-- 1 root root 96384 Sep 24 14:06 wtmp
# 注意上面的特殊字体,在不加任何选项的情况下,文件的某些属性/权限会改变;
# 这是个很重要的特性!要注意喔!还有,连文件创建的时间也不一样了!
# 那如果你想要将文件的所有特性都一起复制过来该怎办?可以加上 -a 喔!如下所示:

[[email protected] tmp]# cp -a /var/log/wtmp wtmp_2
[[email protected] tmp]# ls -l /var/log/wtmp wtmp_2
-rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp
-rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 wtmp_2
# 了了吧!整个数据特性完全一模一样ㄟ!真是不赖~这就是 -a 的特性!
范例三:复制 /etc/ 这个目录下的所有内容到 /tmp 底下
[[email protected] tmp]# cp /etc/ /tmp
cp: omitting directory `/etc‘   <== 如果是目录则不能直接复制,要加上 -r 的选项
[[email protected] tmp]# cp -r /etc/ /tmp
# 还是要再次的强调喔! -r 是可以复制目录,但是,文件与目录的权限可能会被改变
# 所以,也可以利用『 cp -a /etc /tmp 』来下达命令喔!尤其是在备份的情况下!

范例四:将范例一复制的 bashrc 创建一个连结档 (symbolic link)
[[email protected] tmp]# ls -l bashrc
-rw-r--r-- 1 root root 176 Sep 24 14:02 bashrc  <==先观察一下文件情况
[[email protected] tmp]# cp -s bashrc bashrc_slink
[[email protected] tmp]# cp -l bashrc bashrc_hlink
[[email protected] tmp]# ls -l bashrc*
-rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc  <==与原始文件不太一样了!
-rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc_hlink
lrwxrwxrwx 1 root root   6 Sep 24 14:20 bashrc_slink -> bashrc
范例五:若 ~/.bashrc 比 /tmp/bashrc 新才复制过来
[[email protected] tmp]# cp -u ~/.bashrc /tmp/bashrc
# 这个 -u 的特性,是在目标文件与来源文件有差异时,才会复制的。
# 所以,比较常被用於『备份』的工作当中喔! ^_^

范例六:将范例四造成的 bashrc_slink 复制成为 bashrc_slink_1 与bashrc_slink_2
[[email protected] tmp]# cp bashrc_slink bashrc_slink_1
[[email protected] tmp]# cp -d bashrc_slink bashrc_slink_2
[[email protected] tmp]# ls -l bashrc bashrc_slink*
-rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc
lrwxrwxrwx 1 root root   6 Sep 24 14:20 bashrc_slink -> bashrc
-rw-r--r-- 1 root root 176 Sep 24 14:32 bashrc_slink_1       <==与原始文件相同
lrwxrwxrwx 1 root root   6 Sep 24 14:33 bashrc_slink_2 -> bashrc <==是连结档!
# 这个例子也是很有趣喔!原本复制的是连结档,但是却将连结档的实际文件复制过来了
# 也就是说,如果没有加上任何选项时,cp复制的是原始文件,而非连结档的属性!
# 若要复制连结档的属性,就得要使用 -d 的选项了!如 bashrc_slink_2 所示。

范例七:将家目录的 .bashrc 及 .bash_history 复制到 /tmp 底下
[[email protected] tmp]# cp ~/.bashrc ~/.bash_history /tmp
# 可以将多个数据一次复制到同一个目录去!最后面一定是目录!

3 删除文件或目录rm

-i 删除前逐一询问确认

-f 直接删除,无需逐一确认

-r 将目录以及子目录均递归地删除(常常使用在删除目录的时候)

example

范例一:将刚刚在 cp 的范例中创建的 bashrc 删除掉!
[[email protected] ~]# cd /tmp
[[email protected] tmp]# rm -i bashrc
rm: remove regular file `bashrc‘? y
# 如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!

范例二:透过万用字节*的帮忙,将/tmp底下开头为bashrc的档名通通删除:
[[email protected] tmp]# rm -i bashrc*
# 注意那个星号,代表的是 0 到无穷多个任意字节喔!很好用的东西!

范例三:将 cp 范例中所创建的 /tmp/etc/ 这个目录删除掉!
[[email protected] tmp]# rmdir /tmp/etc
rmdir: etc: Directory not empty  <== 删不掉啊!因为这不是空的目录!
[[email protected] tmp]# rm -r /tmp/etc
rm: descend into directory `/tmp/etc‘? y
....(中间省略)....
# 因为身份是 root ,默认已经加入了 -i 的选项,所以你要一直按 y 才会删除!
# 如果不想要继续按 y ,可以按下『 [ctrl]-c 』来结束 rm 的工作。
# 这是一种保护的动作,如果确定要删除掉此目录而不要询问,可以这样做:
[[email protected] tmp]# \rm -r /tmp/etc
# 在命令前加上反斜线,可以忽略掉 alias 的指定选项喔!至於 alias 我们在bash再谈!

范例四:删除一个带有 - 开头的文件
[[email protected] tmp]# touch ./-aaa-  <==touch这个命令可以创建空文件!
[[email protected] tmp]# ls -l
-rw-r--r-- 1 root  root      0 Sep 24 15:03 -aaa-  <==文件大小为0,所以是空文件
[[email protected] tmp]# rm -aaa-
Try `rm --help‘ for more information.  <== 因为 "-" 是选项嘛!所以系统误判了!
[[email protected] tmp]# rm ./-aaa-

4移动或者重命名文件

-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件

-f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何提示

-u 如果目标文件已经存在,且源文件比较新的话,才会进行更新。相当于update

example

范例一:复制一文件,创建一目录,将文件移动到目录中
[[email protected] ~]# cd /tmp
[[email protected] tmp]# cp ~/.bashrc bashrc
[[email protected] tmp]# mkdir mvtest
[[email protected] tmp]# mv bashrc mvtest
# 将某个文件移动到某个目录去,就是这样做!

范例二:将刚刚的目录名称更名为 mvtest2
[[email protected] tmp]# mv mvtest mvtest2 <== 这样就更名了!简单~(因为mvtest2不存在)
# 其实在 Linux 底下还有个有趣的命令,名称为 rename ,
# 该命令专职进行多个档名的同时更名,并非针对单一档名变更,与mv不同。请man rename。

范例三:再创建两个文件,再全部移动到 /tmp/mvtest2 当中
[[email protected] tmp]# cp ~/.bashrc bashrc1
[[email protected] tmp]# cp ~/.bashrc bashrc2
[[email protected] tmp]# mv bashrc1 bashrc2 mvtest2
# 注意到这边,如果有多个来源文件或目录,则最后一个目标档一定是『目录!』
# 意思是说,将所有的数据移动到该目录的意思!

5取得路径的文件名称与目录名称

[[email protected] ~]# basename /etc/sysconfig/network
network         <== 很简单!就取得最后的档名~
[[email protected] ~]# dirname /etc/sysconfig/network
/etc/sysconfig  <== 取得的变成目录名了!

来源:http://cjjwzs.iteye.com/blog/1035763      http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager.php#ls

时间: 2024-12-29 07:35:44

Linux的文件和目录管理的相关文章

linux回顾 文件与目录管理

Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录  /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对路径与相对路径. 绝对路径:路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录. 相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法啦! 处理目录

Linux命令-----文件和目录管理

# cat /home/333   //查看/home下文件333的内容(不停顿) # cd  //进入当前帐户所在目录 # cd 配合通配符*会更方便些 # cd /home/ccc //进入/home/ccc目录 # cd -  //可以回到你之前所在的那个目录 # cd ../..  //返回上两级目录 cp [-adfilprsu] 源文件(source) 目标文件(destination) cp [options] source1 source2 source3 - directory

Linux:文件及目录管理命令基础

1.pwd显示当前所在位置信息 2.cd切换目录 3.tree以树形结构显示目录下的内容 4.mkdir创建目录 5.touch创建文件 6.ls显示目录下内容及属性信息的命令 7.cp复制文件或目录 8.mv移动或重命名文件或目录 9.rm删除文件或目录 1.pwd显示当前所在位置信息 pwd #查看当前所在目录(此命令一般直接使用) 2.cd切换目录 cd 命令语法: cd [选项] 目录 cd 的常用选项: cd ~ /cd #切换到当前用户的家目录 cd . #保持当前目录不变 cd .

Linux下文件和目录管理常用命令(上)

cat命令 描述:连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于shell下的type命令. 注:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容.因此,一般用more等命令分屏显示.为了控制滚屏,可以按Ctrl+S键,停止滚屏:按Ctrl+Q键可以恢复滚屏.按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态. 语法:cat(选项)(参数) 常用选项: -n或-number:从1开始对所有输出的行编号: -b或--number-

实验02 Linux文件和目录管理

一.实验目的 熟悉Linux的文件和目录管理 二.实验环境 CentOS 6.5系统. 三.实验内容 1. 文件和目录的创建.编辑.复制.移动.删除 2. 文件内容的过滤.排序.去重 3. 文件和目录的查找.压缩.解压.打包.解包.分割和重组 4. 文件名通配符的使用,shell的输入输出重定向和管道 四.实验步骤: 1. 了解Linux目录组织结构 (1) 进入根目录 命令:_cd /_ (2) 查看根目录内容 命令:_ls_ (3) 进入并浏览根目录中的各子目录,了解这些目录主要存放哪方面内

CentOS学习笔记--基本命令--文件与目录管理

Linux基本命令--文件与目录管理 本节节选自鸟哥的 Linux 私房菜 -- 基础学习篇目录  第七章.Linux 文件与目录管理  ls(文件与目录的检视) ls命令就是list的缩写,ls可以说是最常用命令,因为我们随时都要知道文件或者是目录的相关属性. [[email protected] ~]# ls [-aAdfFhilnrRSt] 目录名称 [[email protected] ~]# ls [--color={never,auto,always}] 目录名称 [[email p

Linux文件与目录管理命令总结

在Linux下对文件和目录的操作是学习linux的基础,文件的操作无非就是增删改查等等.对于目录的操作也是对目录的增删改查以及修改目录属性等操作.在了解目录管理前得先了解目录的结构.linux下的目录是树型结构,所有的目录都从根(/)开始,其他的文件系统以挂载的方式挂载到目录上去进行使用.访问目录时有相对路径和绝对路径之分. 相对路径:路径的写法不是由根写起的,而是在当前路径的基础之上的.例如:例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd .

Linux 程序设计学习笔记----POSIX 文件及目录管理

转载请注明:http://blog.csdn.net/suool/article/details/38141047 问题引入 文件流和文件描述符的区别 上节讲到ANSI C 库函数的实现在用户态,流的相应资源也在用户空间,但无论如何实现最终都需要通过内核实现对文件的读写控制.因此fopen函数必然调用了对OS的系统调用.这一调用在LINUX下即为open, close, read, write等函数.这些都遵循POSIX标准. so,在linux系统中是如何通过POSIX标准实现对文件的操作和目

[Linux] Linux学习笔记(5)-文件与目录管理

1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录"/"写起,例如:/usr/share/man这个目录: 相对路径写法:不是由"/"写起,例如要由/usr/share/man转移到/usr/share/doc,可以写成:cd ../doc .不过值得注意的是,假如我想从跟目录"/"跳转到"/us