linux ls mv,Linux文件与目录管理 - ls, cp, mv

Linux文件与目录管理 - ls, cp, mv

[root@linuxidc ~]# ls [-aAdfFhilnrRSt] 目录名称

[root@linuxidc ~]# ls [--color={never,auto,always}] 目录名称

[root@linuxidc ~]# 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)

[root@linuxidc ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)

[root@linuxidc ~]# cp [options] source1 source2 source3 .... directory

选项与参数:

-a  :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

-d  :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

-f  :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

-i  :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

-l  :进行硬式连结(hard link)的连结档创建,而非复制文件本身;

-p  :连同文件的属性一起复制过去,而非使用默认属性(备份常用);

-r  :递回持续复制,用於目录的复制行为;(常用)

-s  :复制成为符号连结档 (symbolic link),亦即『捷径』文件;

-u  :若 destination 比 source 旧才升级 destination !

最后需要注意的,如果来源档有两个以上,则最后一个目的档一定要是『目录』才行!

范例一:用root身份,将家目录下的 .bashrc 复制到 /tmp 下,并更名为 bashrc

[root@linuxidc ~]# cp ~/.bashrc /tmp/bashrc

[root@linuxidc ~]# cp -i ~/.bashrc /tmp/bashrc

cp: overwrite `/tmp/bashrc'? n  <==n不覆盖,y为覆盖

# 重复作两次动作,由於 /tmp 底下已经存在 bashrc 了,加上 -i 选项后,

# 则在覆盖前会询问使用者是否确定!可以按下 n 或者 y 来二次确认呢!

范例二:变换目录到/tmp,并将/var/log/wtmp复制到/tmp且观察属性:

[root@linuxidc ~]# cd /tmp

[root@linuxidc tmp]# cp /var/log/wtmp . <==想要复制到目前的目录,最后的 . 不要忘

[root@linuxidc 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 喔!如下所示:

[root@linuxidc tmp]# cp -a /var/log/wtmp wtmp_2

[root@linuxidc 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 底下

[root@linuxidc tmp]# cp /etc/ /tmp

cp: omitting directory `/etc'  <== 如果是目录则不能直接复制,要加上 -r 的选项

[root@linuxidc tmp]# cp -r /etc/ /tmp

# 还是要再次的强调喔! -r 是可以复制目录,但是,文件与目录的权限可能会被改变

# 所以,也可以利用『 cp -a /etc /tmp 』来下达命令喔!尤其是在备份的情况下!

范例四:将范例一复制的 bashrc 创建一个连结档 (symbolic link)

[root@linuxidc tmp]# ls -l bashrc

-rw-r--r-- 1 root root 176 Sep 24 14:02 bashrc  <==先观察一下文件情况

[root@linuxidc tmp]# cp -s bashrc bashrc_slink

[root@linuxidc tmp]# cp -l bashrc bashrc_hlink

[root@linuxidc 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 新才复制过来

[root@linuxidc tmp]# cp -u ~/.bashrc /tmp/bashrc

# 这个 -u 的特性,是在目标文件与来源文件有差异时,才会复制的。

# 所以,比较常被用於『备份』的工作当中喔! ^_^

范例六:将范例四造成的 bashrc_slink 复制成为 bashrc_slink_1 与bashrc_slink_2

[root@linuxidc tmp]# cp bashrc_slink bashrc_slink_1

[root@linuxidc tmp]# cp -d bashrc_slink bashrc_slink_2

[root@linuxidc 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 底下

[root@linuxidc tmp]# cp ~/.bashrc ~/.bash_history /tmp

# 可以将多个数据一次复制到同一个目录去!最后面一定是目录!

范例五:若 ~/.bashrc 比 /tmp/bashrc 新才复制过来

[root@linuxidc tmp]# cp -u ~/.bashrc /tmp/bashrc

# 这个 -u 的特性,是在目标文件与来源文件有差异时,才会复制的。

# 所以,比较常被用於『备份』的工作当中喔! ^_^

范例六:将范例四造成的 bashrc_slink 复制成为 bashrc_slink_1 与bashrc_slink_2

[root@linuxidc tmp]# cp bashrc_slink bashrc_slink_1

[root@linuxidc tmp]# cp -d bashrc_slink bashrc_slink_2

[root@linuxidc 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 底下

[root@linuxidc tmp]# cp ~/.bashrc ~/.bash_history /tmp

# 可以将多个数据一次复制到同一个目录去!最后面一定是目录!

[root@linuxidc ~]# mv [-fiu] source destination

[root@linuxidc ~]# mv [options] source1 source2 source3 .... directory

选项与参数:

-f  :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i  :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u  :若目标文件已经存在,且 source 比较新,才会升级 (update)

范例一:复制一文件,创建一目录,将文件移动到目录中

[root@linuxidc ~]# cd /tmp

[root@linuxidc tmp]# cp ~/.bashrc bashrc

[root@linuxidc tmp]# mkdir mvtest

[root@linuxidc tmp]# mv bashrc mvtest

# 将某个文件移动到某个目录去,就是这样做!

范例二:将刚刚的目录名称更名为 mvtest2

[root@linuxidc tmp]# mv mvtest mvtest2 <== 这样就更名了!简单~

# 其实在 Linux 底下还有个有趣的命令,名称为 rename ,

# 该命令专职进行多个档名的同时更名,并非针对单一档名变更,与mv不同。请man rename。

范例三:再创建两个文件,再全部移动到 /tmp/mvtest2 当中

[root@linuxidc tmp]# cp ~/.bashrc bashrc1

[root@linuxidc tmp]# cp ~/.bashrc bashrc2

[root@linuxidc tmp]# mv bashrc1 bashrc2 mvtest2

# 注意到这边,如果有多个来源文件或目录,则最后一个目标档一定是『目录!』

# 意思是说,将所有的数据移动到该目录的意思!

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值