威尼斯国际线上娱乐Linux编程 4 (创建文件touch,复制文件cp,tab补全,链接文件ln)

by admin on 2019年11月19日

一.创建文件

  使用touch
可以创建空文件,例如opt目录下创建test2.txt文件。这种一般是有些程序必须要先创建文件,才能使用。
        威尼斯国际线上娱乐 1

链接命令:ln 生成链接文件
   ln [源文件] [目标目录]

1. 命令

touch — 创建文件,改变文件的访问时间 和 修改时间。

威尼斯国际线上娱乐,在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cpscp
cp命令用来复制文件或者目录。scp是secure
copy的简写,用来在Linux下进行加密的远程传输文件或者目录。
cpscp是Linux中功能强大且常用的的命令,下面就介绍下cp和scp两个命令的使用。

Usage: 

二. 复制文件

  2.1
使用cp命令来复制文件,需要两个参数—–源对象和目标对象。例如在opt目录下将test2.txt复制一份为test3.txt。
        威尼斯国际线上娱乐 2

  2.2 使用cp
–R参数,可以一条命令将整个目录内容递归复制,例如将/opt目录及目录下所有文件复制到/usr下,
查看 /usr/opt 内容已全部复制过来。
        威尼斯国际线上娱乐 3

      下面是删除/usr/opt目录及目录下所有文件

         威尼斯国际线上娱乐 4

   2.3
也可以在cp命令中使用通配符,例如将opt目录下的以.txt结尾的文件全部复制到/usr目录下。
        威尼斯国际线上娱乐 5

  • 创建硬链接
  • -s:创建软链接 

    硬链接特征:(ln )
    1.拥有相同的i节点和存储block快,可以看做是同一个文件
    2.可通过i节点识别
    3.不能跨分区
    4.不能针对目录使用,仅对文件有效

    软链接特征:(ln -s)
    1.类似windows的快捷方式
    2.软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
    3.修改任意一个文件,另一个都会改变
    4.删除源文件,则软链接无法使用
    5.软链接的文件权限都为rwxrwxrwx(文件权限以原文件为准)

    注意事项:
       若要创建软链接,则创建的源文件必须使用绝对路径,否则在使用软链接时会报错

    软链接和硬链接区别:
        
     若将源文件删除,硬链接依旧有效,而软链接会无效,即找不到源文件

2. 使用样例

  • 创建文件,名为 test

touch test

[123itools@shengqian tmp]$ touch test
[123itools@shengqian tmp]$ ls
test
  • 如何查看文件的访问时间,修改时间,例如查看文件 test 的状态

stat test

[123itools@shengqian tmp]$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 855767      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/123itools)   Gid: ( 1007/123itools)
Access: 2016-11-13 19:18:52.280760804 +0800
Modify: 2016-11-13 19:18:52.280760804 +0800
Change: 2016-11-13 19:18:52.280760804 +0800
 Birth: -
  • 改变 test 文件的访问时间为当前时间,Access 时间由 19:18:52 切换到
    19:20:14

touch -a test

[123itools@shengqian tmp]$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 855767      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/123itools)   Gid: ( 1007/123itools)
Access: 2016-11-13 19:18:52.280760804 +0800
Modify: 2016-11-13 19:18:52.280760804 +0800
Change: 2016-11-13 19:18:52.280760804 +0800
 Birth: -
[123itools@shengqian tmp]$ touch -a test
[123itools@shengqian tmp]$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 855767      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/123itools)   Gid: ( 1007/123itools)
Access: 2016-11-13 19:20:14.830962102 +0800
Modify: 2016-11-13 19:18:52.280760804 +0800
Change: 2016-11-13 19:20:14.830962102 +0800
 Birth: -
  • 改变 test 文件的修改时间为当前时间

touch -m test

[123itools@shengqian tmp]$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 855767      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/123itools)   Gid: ( 1007/123itools)
Access: 2016-11-13 19:20:14.830962102 +0800
Modify: 2016-11-13 19:18:52.280760804 +0800
Change: 2016-11-13 19:20:14.830962102 +0800
 Birth: -
[123itools@shengqian tmp]$ touch -m test
[123itools@shengqian tmp]$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 855767      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/123itools)   Gid: ( 1007/123itools)
Access: 2016-11-13 19:20:14.830962102 +0800
Modify: 2016-11-13 19:21:11.976101450 +0800
Change: 2016-11-13 19:21:11.976101450 +0800
 Birth: -
  • 改变 test 文件的修改时间为 2016-09-30 00:01:20

touch -m -d "2016-09-30 00:01:20" test

[123itools@shengqian tmp]$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 855767      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/123itools)   Gid: ( 1007/123itools)
Access: 2016-11-13 19:20:14.830962102 +0800
Modify: 2016-11-13 19:21:11.976101450 +0800
Change: 2016-11-13 19:21:11.976101450 +0800
 Birth: -
[123itools@shengqian tmp]$ touch -m -d "2016-09-30 00:01:20" test
[123itools@shengqian tmp]$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 855767      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/123itools)   Gid: ( 1007/123itools)
Access: 2016-11-13 19:20:14.830962102 +0800
Modify: 2016-09-30 00:01:20.000000000 +0800
Change: 2016-11-13 19:22:17.860262108 +0800
 Birth: -

cp命令

cp命令可以复制一个文件,可以是单个文件复制也可以是整个目录复制,命令的使用方式:

cp [options] source dest

例如:cp test.txt test1.txt,就是把test.txt复制为文件test1.txt。
常用的cp命令选项有:

`-r`:拷贝目录文件,将目录下的文件依序拷贝到目标目录中
`-f`:如果目标文件中已经有相同的文件名存在,在复制前先将同名文件删除再进行复制
`-l`:对源文件进行硬链接,而不复制文件
`-u`:源文件的Modification Time较目的文件有更新的时候,才会进行复制。
`-v`:输出详细信息

复制文件夹的命令:

cp -r test/ test1/

ln [OPTION]… [-T] TARGET LINK_NAME  (1st form)

or:  ln [OPTION]… TARGET                  (2nd form)

or:  ln [OPTION]… TARGET… DIRECTORY    (3rd form)

or:  ln [OPTION]… -t DIRECTORY TARGET…  (4th form)

 三.  制表键自动补全  

    当命令字符太长,很容易输错命令。可以使用tab键自动补全。例如关机命令shutdown。可以按下shut按tab来补全,文件目录太长用法也是一样。自动补全在于要给shell足够的信息,使其与其他名字区别。

    如果按下tab无法补全,可以再按一下tab,将显示以输入命令开头的文件名,例如输入sh,
按一下tab没有作用,再按一下tab,将显示sh开头的所有信息。
        威尼斯国际线上娱乐 6

ln    源文件   目标文件

3. 使用方法

touch [属性]… 文件…

scp命令

scp命令可以实现本地与远程服务器之间的双向传输,本地文件可以传输到远程服务,也可以把远程服务器上的文件传输到本地,而且是加密的。
scp命令的基本格式:

scp [options] source dest

scp常用的命令选项:

`-P`:数据传输默认端口,默认是22
`-r`:递归拷贝整个目录
`-i`:指定密钥文件,参数直接传递给ssh使用
`-l`:限定网速,以Kbit/s为单位
`-C`:允许压缩
`-1,-2`:强制scp命令使用ssh1或者ssh2协议
`-4,-6`:使用ipv4或者ipv6寻址

下面是比较常用的scp命令使用的例子。

  1. 本地文件传输到远程服务器
    命令格式:

    scp test.txt root@192.168.1.1:/home/

    将test.txt文件复制到目标服务器(192.168.1.1)下的home文件夹下。

  2. 本地文件夹传输到远程服务器
    命令格式:

    scp -r test root@192.168.1.1:/home/

    将test整个文件夹复制到目标服务器下的home文件夹下。

  3. 远程服务器文件传输到本地
    命令格式:

    scp root@192.168.1.1:/home/test.txt test

    将远程服务中home目录下的test.txt文件,复制到本地的test目录下

  4. 远程服务器文件夹复制到本地

    scp -r root@192.168.1.1:/home/test /Users/jjz

    将远程服务器中home目录下的test整个目录复制到本地的jjz目录下

  5. scp命令指定密钥文件

    scp test.txt root@192.168.1.1:/home/ -i ~/.ssh/id_rsa.1

    这里指定了密钥文件id_rsa.1做为ssh的连接参数,不使用默认的密钥文件。

In the 1st form, create a link to TARGET with the name LINK_NAME.

 四.链接文件 ln(共享文件)   

    链接文件是linux文件系统的一个优势,如需要在系统上维护同一个文件的两份或多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。虚拟副本叫链接。链接是目录中指向文件真实位置的点位符。分二种类型文件链接类型:
一是符号链接又叫软链接, 二是硬链接。
    4.1
符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件,这两个通过符号链接在一起的文件,彼此的内容并不相同。

      使用ln命令以及-s选项来创建符号链接,下面是在etc目录下,给my.cnf创建符号链接在本目录。
      威尼斯国际线上娱乐 7

      如下所示:ls_my.cnf只有6字节,它只是指向my.cnf而已。
      威尼斯国际线上娱乐 8

      尝试随意使用vim修改某个配置个文件,都会在另一文件中修改,因为是符号链接。
      威尼斯国际线上娱乐 9

      链接文件为 Linux
系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

    4.2
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置,引用硬链接文件等同于引用了源文件。ln命令不需要加额外参数。

      使用ln命令来创建硬链接,还是使用etc下的my.cnf来演示:
      威尼斯国际线上娱乐 10

      上图使用了ls –li
命令显示了inode编号,列表第一列(文件的唯一标识,它用来区别同一个文件而非是文件名来区别)以及长列表。带有硬链接的文件共享inode编号。因为它们终归是同一个文件,链接计数显示2(列表中第三项),显示两个文件都有两个链接,另外它们文件大小也一模一样。

      威尼斯国际线上娱乐 11

      尝试随意某个配置文件,都会在另一文件中修改,因为是一个完全相同的副本.
是一个 inode 号对应多个文件名, 硬链接就是同一个文件使用了多个别名

总结:

  硬链接以下几点特性:

    文件有相同的 inode;

    只能对已存在的文件进行创建;

    不能交叉文件系统进行硬链接的创建;

    不能对目录进行创建,只可对文件创建;

    删除一个硬链接文件并不影响其他有相同 inode 号的文件;

  软链接以下几点特性:

    软链接有自己的文件属性及权限等;

    可对不存在的文件或目录创建软链接;

    软链接可交叉文件系统;

    软链接可对文件或目录创建;

    创建软链接时,链接计数 i_nlink 不会增加;

    删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即
dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)

 

ln  -sf  /etc/passwd  /passwd            ###-s 软连接  -f 
强制建立连接

4. 参数说明

  • -a

修改文件的访问时间

  • -m

修改文件的修改时间

  • -d

指定要修改成的时间

In the 2nd form, create a link to TARGET in the current directory.

-s 是代号(symbolic)的意思。 

In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.

ln -sf  /data/u01    /u01

Create hard links by default, symbolic links with –symbolic.

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141347.htm

When creating hard links, each TARGET must exist.  Symbolic links

威尼斯国际线上娱乐 12

can hold arbitrary text; if later resolved, a relative link is

interpreted in relation to its parent directory.

Mandatory arguments to long options are mandatory for short options too.

–backup[=CONTROL]      make a backup of each existing destination
file

-b                          like –backup but does not accept an
argument

-d, -F, –directory        allow the superuser to attempt to hard link

directories (note: will probably fail due to

system restrictions, even for the superuser)

-f, –force                remove existing destination files

-i, –interactive          prompt whether to remove destinations

-L, –logical              make hard links to symbolic link references

-n, –no-dereference        treat destination that is a symlink to a

directory as if it were a normal file

-P, –physical              make hard links directly to symbolic links

-s, –symbolic              make symbolic links instead of hard links

-S, –suffix=SUFFIX        override the usual backup suffix

-t, –target-directory=DIRECTORY  specify the DIRECTORY in which to
create

the links

-T, –no-target-directory  treat LINK_NAME as a normal file

-v, –verbose              print name of each linked file

–help    display this help and exit

–version  output version information and exit

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图