Xshell Linux常用命令及vim与权限修改等常见问题

Xshell :一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.(百度百科)

此文讲述的是xshell下的Linux命令,此命令在help下大都可以找到。在xshell终端下常用的命令有:

@[TOC] 目录

## 第一部分

 

0.帮助命令与清屏

help        查看帮助命令

ls --help   查看ls命令下的具体用法

info ls     查看ls命令的作用

clear       清屏

1.   查看当前路径

pwd(print working directory)

2.列出当前目录的文件

ls              列出所有文件或者文件夹(以排形式)

ls  *abc        列出文件abc内的所有文件

ls –l           列出所以文件及其详细属性(以列形式,不展示隐藏文件,隐藏文件的展示见第二部分)

ls .*           展示此级文件以及上一级文件(不展示隐藏文件)

ls -a           显示隐藏文件

ls -lrt         按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)

3.进入目录

   cd            进入当前用户主目录(等同于cd ~)

   cd  etl/app/TEMP/abc/ddl

                 进入目录etl/app/TEMP/abc/ss

   cd /home     进入home目录

   cd  /        切换到根目录

   cd -         回到上次目录

   cd ..        返回上一级目录

   cd ../..     返回上两级目录

4.删除命令rm

注意:rm最好不要乱用,删了就找不回来了,建议要用rm的地方换成用mv到某个备份文件夹!!

rm [-fir]文件或目录

-f 是忽略不存在的文件,不会出现警告信息(force,强行执行)

rm dir  (删除文件夹)

-i:互动模式,在删除前会询问用户是否执行此操作。(回答y表示是,n表示否)

-r:递归删除(recursive),常用于目录的删除,同时删除目录下的文件与子目录rm

rmdir -rf test   或者 rm -rf test

rm  -f   flt_date201405.tsv  

       强行删除文件flt_date201405.tsv ,不给任何提示;

       若文件flt_date201405.tsv不存在,直接忽略。rm

rm  -r  文件名或目录名

       删除文件或目录下的文件及子目录

rm  -rf  文件名或目录

       强行删除文件或目录下的文件及子目录(删除压缩文件tar等时可用)

rm  -i 文件名  

       交互式的删除文件(删除前系统会逐一进行询问)

rm -ir 文件名

        交互式删除文件夹及其下的文件,会逐一询问

删除test文件夹下的所有文件:

rm -r test/*

举例:删除example2文件夹

 说明,笔者在example1文件夹下又有一个example1文件夹(说明可以有同名的子文件夹,但不能有同名的同一目录下的文件夹),在example1之下有一个名为example2的文件夹,在此文件夹下有test文件。现在要删掉example2文件夹以及test文件:

第一句使用rm删除文件夹example2,发现提示说不能删除,因为example2是文件夹。所以第二条命令用rmdir删除,提示说此文件夹不是空的,因为其下有test文件,所以不能删除。接着第三条命令使用-r即连环删除命令,将test一并删除。最后一条ls命令用来展示发现文件都被删除了。

rm -i test(删除test文件,有提醒是否删除,是则y,否则n) 

5.移动和重命名文件 mv

mv  flt_date201405.tsv  flt_date201406.tsv

       将文件flt_date201405.tsv重命名为flt_date201406.tsv

mv  flt_date201405.tsv  /etl/app/TEMP/ff

      将文件转移到目录/etl/app/TEMP/ff下

 6.复制文件 cp

可以用cp --help 查看帮助

cp file1 file2                    将file1复制为file2

cp -a dir1 dir2                 复制一个目录



cp -a /tmp/dir1 .             
       复制一个目录到当前工作目录(.代表当前目录)

cp  flt_date201405.tsv  flt_date201406.tsv

      将文件复制成为 flt_date201406.tsv

cp  flt_date201405.tsv  /etl/app/TEMP/ff

     将文件flt_date201405.tsv复制到目录/etl/app/TEMP/ff下

cp  /etl/app/TEMP/abc/flt_date201405.tsv .(注意有空格和点)   

         将目录etl/app/TEMP/abc下的flt_date201405.tsv文件复制到当前的目录下,文件名保持不变

.   当前目录
..  上级目录
~  用户家目录
-   前一个目录
cp /home/wudl/test.txt file1

         将test.txt文件拷贝到当前目录下一个名为file1的文件夹

cp  /etl/app/TEMP/abc/flt_date201405.tsv  flt_date201406.tsv

         将目录etl/app/TEMP/abc下的flt_date201405.tsv文件复制到当前的目录下,文件名改为flt_date201406.tsv

cp  -r  /etl/app/TEMP    /etl/app/TEMP/abc

         将目录/etl/app/TEMP下的所以文件及子目录复制到目录/etl/app/TEMP/abc下

复制一个文件夹test下的所有文件:

cp -r test/*  test1     *表示所有文件(但不包括隐藏文件,即.开头)
cp -r test/.  test1     .表示复制所有文件到test1,包括隐藏文件

 7.比较内容 diff

 diff    /etl/app   etl/app/TEMP

         比较目录/etl/app与目录etl/app/TEMP下的文件列表是否相同(不比较文件的实际内容),会展示出结果

diff   flt_date201405.tsv  flt_date201406.tsv

      比较文件flt_date201405.tsv与文件flt_date201406.tsv的实际内容是否相同(文本文件列出不同处,二进制的文件只显示是否相同),会展示出文件内容

 8.查找文件

主要用到find和grep命令(参考http://www.cnblogs.com/huninglei/p/5824205.html)

        区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 

 

              (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

find  –name ‘flt_date201406.tsv

           在当前的目录下查找文件名为flt_date201406.tsv的文件

find  !  -name  airline_booking_class.dsql

在当前的目录下查找出文件名不为flt_date201406.tsv的所有文件

find / -name file1                                             从 '/' 开始进入根文件系统查找文件和目录

find / -user user1                                             查找属于用户 'user1' 的文件和目录

find /home/user1 -name \*.bin                            在目录 '/ home/user1' 中查找以 '.bin' 结尾的文件

find /usr/bin -type f -atime +100                         查找在过去100天内未被使用过的执行文件

find /usr/bin -type f -mtime -10                           查找在10天内被创建或者修改过的文件

locate \*.ps                                                     寻找以 '.ps' 结尾的文件,先运行 'updatedb' 命令

find -name '*.[ch]' | xargs grep -E 'expr'               在当前目录及其子目录所有.c和.h文件中查找 'expr'

find -type f -print0 | xargs -r0 grep -F 'expr'          在当前目录及其子目录的常规文件中查找 'expr'

find -maxdepth 1 -type f | xargs grep -F 'expr'        在当前目录中查找 'expr'grep

A.find命令

    基本格式:find  path expression

    1.按照文件名查找

    (1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
    (2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
    (3)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
    (4)find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件

    2.按照文件特征查找     

    (1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
    (2)find / -atime -2   # 查找在系统中最后48小时访问的文件
    (3)find / -empty   # 查找在系统中为空的文件或者文件夹
    (4)find / -group cat   # 查找在系统中属于 group为cat的文件
    (5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
    (6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件
    (7)find / -user fred   #查找在系统中属于fred这个用户的文件
    (8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
    (9)find / -size -1000k   #查找出小于1000KB的文件

    3.使用混合查找方式查找文件

    参数有: !,-and(-a),-or(-o)。

    (1)find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
       (2)find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
       (3)find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件

B.grep命令

     基本格式:find  expression

     1.主要参数

    [options]主要参数:
    -c:只输出匹配行的计数。
    -i:不区分大小写
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。

    pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达 式的行开始。
    \>:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的单个字符。
    * :有字符,长度可以为0。

    2.实例  

  (1)grep 'test' d*  #显示所有以d开头的文件中包含 test的行
  (2)grep ‘test’ aa bb cc    #显示在aa,bb,cc文件中包含test的行
  (3)grep ‘[a-z]\{5\}’ aa   #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
  (4)grep magic /usr/src  #显示/usr/src目录下的文件(不含子目录)包含magic的行
  (5)grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行

     (6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’)

     (7)grep -si "Ranges" *   显示包含Ranges的所有文件,不包含大小写(在进入文件后可以再/module Ranges查看)

 9.显示文件大小

wc  -l  flt_date201406.tsv

            查看文件flt_date201406.tsv有多少行

wc  -c  flt_date201406.tsv

       查看文件flt_date201406.tsv有多少字节

 10. 显示文件内容

cat  fastload.pl    查看文件所有内容

head -2 file1                   查看一个文件的前两行

more file1                       查看一个长文件的内容

tac file1                         从最后一行开始反向查看一个文件的内容

tail -3 file1                      查看一个文件的最后三行 

11. 编辑文件

新建文件

 ---- vim  ljt.txt   需要新建的文件名ljt.txt

-----vim test/name.doc  在test文件夹下建立文件名为name的Word文档

----点击键盘 ‘i’键,然后编写文件内容 (其中需要输入中文时,选择 编码 Unicode(UTF-8))

----修改完毕后,点击键盘 Esc,然后按  Shift 和 :

        输入 wq 保持修改的内容(放弃修改时输入 q)

修改已有的文件

---- vim  ljt.txt   需要修改的已存在的文件名ljt.txt

----点击键盘 ‘i’键,然后编写文件内容 (其中需要输入中文时,选择 编码 Unicode(UTF-8))

----修改完毕后,点击键盘 Esc,然后按  Shift 和 :

        输入 wq 保持修改的内容(放弃修改时输入 q)

补充:vim/vi是一种流行的编辑器,在Linux中被广泛使用,深受欢迎的编辑器还有Emacs, python下默认编辑器为IDLE。vim/vi有三种基本模式:命令模式(command mode)、插入模式(Insert mode)、底行模式(last line mode)。各种模式功能如下:

(1)命令模式

在建立文件如输入vim test,此时进入的即是命令模式,可以连续按两下d键删除行,u可以取消操作。此模式下更多命令如下:

h 左移光标一个字符

l 右移光标一个字符

k 光标上移一行

j 光标下移一行

^ 光标移动至行首

0 数字“0”,光标移至行的开头

shift+0光标移至文章的最后

gg光标移到文章开头

$ 光标移动至行尾

Ctrl+f 向前翻屏

Ctrl+b 向后翻屏

Ctrl+d 向前翻半屏

Ctrl+u 向后翻半屏

i 在光标位置前插入字符

a 在光标所在位置的后一个字符开始增加

o 插入新的一行,从行首开始输入

ESC 从输入状态退至命令状态

dl删除光标所在的一个字

x 删除光标后面的字符

#x 删除光标后的#个字符

X (大写X),删除光标前面的字符

#X 删除光标前面的#个字符

dd 删除光标所在的行

#dd 删除从光标所在行数的#行

yw 复制光标所在位置的一个字

#yw 复制光标所在位置的#个字

yy 复制光标所在位置的一行

#yy 复制从光标所在行数的#行

p 粘贴

u 取消操作

cw 更改光标所在位置的一个字

#cw 更改光标所在位置的#个字

(2)插入模式

在建立文件后要进入插入模式编写、修改和删除文件时需要按“i”(或者大写“I”)键。此时看到底下有提示--INSETR--,代表进入插入模式。在此情况写即可对文档做改动。在退出插入模式进入命令模式时需要按Esc键。

(3)底行模式

保存文件或者退出vim编辑。

要进入命令模式才能进行底行模式。在编辑文档结束后从插入模式按Esc进入底行模式,此时按「:」冒号(注意要按shift才能输入冒号)进入底行模式,在冒号后有如下操作:(注意,需要键盘在英文输入模式下进行)

:w test(w表示write,表示将文档以test为文件名保存),回车后发现文件名改为test,但并没有退出编辑,要退出见下

:q或者q!(注意有感叹号)q代表quit,加感叹号是强行退出,此种退出方法不保存修改的文档,类似于Word文档中退出而不保存

:wq,即write and quit,此种退出方法=保存并退出。

当要查看文档时可用cat命令,如cat test。当要再次编辑文档时,vi test或vim test即可进入。

(注:上文来自钮甲跳,文章链接为:http://www.cnblogs.com/runner-ljt/p/4551568.html补充部分来自于EmanLee的博客网址为:http://www.cnblogs.com/emanlee/archive/2011/11/10/2243930.html有改动

注意:当使用vim或者vi非正常关闭时(断电或者非常规退出,如Ctrl+zz),会生成.swp交换文件。实际上在vi或者vim创建文件时系统会自动带有.swp文件以防不测,当正常关闭时.swp文件消失,否则一直存在.在非正常关闭下出现.swp文件,以test2为例,则为.test2.swp(第一个点表示此为隐藏文件,用ls命令看不到此文件,可以用ls -al命令查看全部文件,见第二部分第三小节)。此时用vi test2进入则有提示如下:

 

文中说是:找到一个swp文件,出现的原因是(1)其他程序正在编程此文件.....(2)此文件的编辑程序崩溃。可以使用recover或者vim -r 来恢复.....

我们只需要输入“r”或者“R”来恢复此文件即可,在输入之后文件已经恢复,此时可以删除不需要的swp文件(命令为rm .test2.swp,否则会一直提示,但是要确保已经不需要此文件,不然删除了接着你很快就会伤心的)然后vi test2即可进入此文件。

 

12,压缩和解压

tar常用命令:

A压缩文件 -cvf命令

1)处于当前工作路径下,打包当前路径下的文件并放在当前路径

(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数)

tar -cvf archive.tar file1      把file1打包成 archive.tar

tar -cvf archive.tar file1 dir1        把 file1,dir1 打包成 archive.tar

 (当前处在test文件下,将其下的test1文件夹压缩为test1.tar)

2)处在当前工作路径下,打包文件到指定目录

tar -cvf 指定目录 目标文件

如tar -cvf /home/wudl/intel/test1.tar test1(将当前文件夹下的test1文件打包到intel文件夹下,并取名为test1.tar

(路径可以红pwd查找,-C是临时切换工作目录)

3)将其他文件打包到当前工作路径

tar -cvf +压缩的文件名.tar +目标文件目录

 如:tar -cvf test1.tar /home/wudl/test/test1(将test文件夹下的test1文件压缩到当前目录,并命名为test1.tar)

B解压文件 -xvf 命令

1)处于当前工作路径下,解压当前路径下的文件并放在当前路径

唉,有待补充,以上以下都有错

2)处在当前文件下

    举例:tar -xvf archive.tar -C +目标目录         把压缩包释放到目标目录下

    如:tar -xvf file.tar -C /home/wudl/test        把文件file.tar解压到test目录下(并保留原压缩文件)

bzip2 file1                                   压缩 file1

bunzip2 file1.bz2                        解压 file1.bz2

gzip file1                                     压缩 file1

gzip -9 file1                                最大程度压缩 file1

gunzip file1.gz                            解压 file1.gz

tar -tf archive.tar                         显示一个包中的内容

tar -xvf archive.tar                      释放一个包

tar -xvf archive.tar -C +目标目录         把压缩包释放到目标目录下

zip file1.zip file1                          创建一个zip格式的压缩包

zip -r file1.zip file1 dir1               把文件和目录压缩成一个zip格式的压缩包

unzip file1.zip                             解压一个zip格式的压缩包到当前目录

unzip test.zip -d /tmp/                 解压一个zip格式的压缩包到 /tmp 目录

对tar详解:

语法:tar [主选项+辅选项] 文件或者目录

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

压缩

tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 

tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

 tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2

tar -cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z

rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux

zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

tar -xvf file.tar //解压 tar包

tar -xzvf file.tar.gz //解压tar.gz

tar -xjvf file.tar.bz2   //解压 tar.bz2

tar -xZvf file.tar.Z   //解压tar.Z

unrar e file.rar //解压rar

unzip file.zip //解压zip

总结

1、*.tar 用 tar -xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、*.tar.gz和*.tgz 用 tar -xzf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar -xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar -xZf 解压

8、*.rar 用 unrar e解压

9、*.zip 用 unzip 解压

 

第二部分

1,创建文件夹(删除文件夹见第一部分)

(1)mkdir 文件名(如:mkdir test,则建立了一个test的文件夹)

说明:mkdir 是make directory(创建目录)的简写,如果当前目录存在test文件夹,则不能在此目录建立test文件夹(即不能在一个目录下建立两个同名的文件夹),但可以在test目录下建文件夹名为test的子文件夹。

(2)mkdir home/test在home目录下建立test文件夹

(3)mkdir home1 home2 home3建立三个文件夹,名字分别为home1、home2、home3

(4)mkdir -p /tmp/dir1/dir2    创建一个目录树

2,创建隐藏文件夹

同隐藏文件一样,在Linux中在文件名前加“.”表示此文件或文件夹为隐藏文件。

mkdir .name     创建名为name的隐藏文件夹

vim .test.doc   创建名为test.doc的隐藏文件,并打开

touch .test.doc  创建名为test.doc的隐藏文件,但不打开。touch的详细作用见7

3,查看隐藏文件

ls -a(或者ls -al) 查看所有文件,包括隐藏文件,以行展示(以列的形式展示,同时显示详细信息,从左到右分别表示:【权限】【连接(到此节点i-node的文件数)】【所有者】【用户组】【文件容量】【修改日期】【文件名】)

ls -d .*只展示隐藏文件(即前头有“.”的文件)(注意,s和d后都有一个空格)

l.(此为网上部分网友的说法,在xshell下亲试无效)

4.修改文件权限

修改文件权限有两种方法,分别是数字类型修改法和符号类型修改法

(1)数字类型修改法

文件权限有rwx,即read,write,execute三种,从数字上来讲,对应方式为:r---4,w----2,x---1

改变权限使用chmod(change mode)命令,chmod命令用法如下:

chmod 数字 文件或文件名。

数字改变举例如下:

要使得自己对文件test有读写可执行三种,所属用户组及其他组都只有可读可执行而不能修改的权限,则相当于给自己权限的值为4+3+1=7,其他两个组都是4+1=5,则执行命令如下

chmod 755 test

(2)符号类型法

举例如下:

chmod u=rwx,go=rx test

以上表示用户自己u(user)具有rwx三种权限,所属组group,以及其他组人员others只有rx两种权限。注意:中间那一块没有空格隔开。

如果不知道test的权限如何,也不想知道,而只是想在其上对所有人都增加w或减少r的权限,则可以用“+”或者“-”来执行命令。如:

对所有人增加w的权限:

 

 

对所有人减少r的权限:

  5.安装程序

 sudo 是superuser do的简写,它的含义是以超级用户的权限运行,普通用户无法执行许多命令,比如说安装程序

 6.创建连接

使用ln命令(link),格式为:ln [参数] [源文件或目录] [目标文件或目录]

命令参数有:

       必要参数:

-b 删除,覆盖以前建立的链接

-d 允许超级用户制作目录的硬链接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录

-s 软链接(符号链接)

-v 显示详细的处理过程

 

选择参数:

-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”

-V “-V<备份方式>”或“--version-control=<备份方式>”

--help 显示帮助信息

--version 显示版本信息

 

举例:笔者首先在/home/wudl/test1/name文件夹下建立一个名为ln的文件,文件里的内容为:

this is a link file

现在进入另一个文件夹,路径为(pwd查看路径)/home/wudl/test1/test1/,笔者现在要在此路径下链接上面提到的ln文件,代码如下:

ln -s /home/wudl/test1/name/ln /home/wudl/test1/test1/link(注意有空格)#link是不存在的文件,此处为新建了一个名为link的用以连接ln文件的目标文件

即:ln -s [源文件] [目标文件](注意有空格,使用的是软链接soft)

 cat 用于查看文件,此时可以看到新增加了一个叫做link的文件,并且里面的内容跟ln文件的内容一致。

ln -s /home/wudl/test file

将文件test链接到当前目录下的file文件(当前文件夹下不存在file文件,此文件则新建)

7.创建文件

1)使用vi命令

     vi filename :打开或新建文件,并将光标置于第一行首

     vi +n filename :打开文件,并将光标置于第n行首

    vi + filename :打开文件,并将光标置于最后一行首

    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

    vi filename....filename :打开多个文件,依次进行编辑

2)使用touch命令

    二、touch命令使用格式

    格式:touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][--help] [--version][文件或目录...] 或 touch [-acfm][--help][--version][日期时间][文件或目录...]

    (touch [-acfm][-r reference-file] [--file=reference-file][-t MMDDhhmm[[CC]YY][.ss]][-d time] [--date=time][--time={atime,access,use,mtime,modify}][--no-create][--help] [--version]file1 [file2 ...])

    三、touch命令功能

  touch fileA,如果fileA存在,使用touch命令可更改这个文件或目录的日期时间,包括存取时间和更改时间;如果fileA不存在,touch命令会在当前目录下新建一个空白文件fileA。

  注:使用touch指令可更改文件或目录的日期和时间,包括存取时间和更改时间。文件的时间属性包括文件的最后访问时间,最后修改时间以及最后在磁盘上修改的时间,命令stat显示结果显示了三个时间属性。

    四、touch命令选项说明

    a 改变档案的读取时间记录。

  m 改变档案的修改时间记录。

  c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

  f 不使用,是为了与其他 unix 系统的相容性而保留。

  r 使用参考档的时间记录,与 --file 的效果一样。

  d 设定时间与日期,可以使用各种不同的格式。

  t 设定档案的时间记录,格式与 date 指令相同。[[CC]YY]MMDDhhmm[.SS],CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则linux中touch命令参数将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的.

  --no-create 不会建立新档案。

  --help 列出指令格式。

  --version 列出版本讯息。

    五、touch命令使用举例

    例一:更新file1.txt的存取和修改时间。

  touch file1.txt

  例二:如果file1.txt不存在,则创建文件

  touch -c file1.txt

  例三:更新file1.txt的时间戳和ref+file相同

  touch -r ref+file file1.txt

  例四:设置文件的时间戳为2011年5月18日9点45分10秒

  ls -l file1.txt

  touch -t 1105190945.10 file1.txt

你可能感兴趣的:(linux)