linux shell 脚本攻略学习11--mkdir和touch命令详解

时间:2022-05-19 01:22:34

一、创建目录(mkdir命令详解)

amosli@amosli-pc:~/learn$ mkdir dir
amosli@amosli-pc:~/learn/dir$ mkdir folder
amosli@amosli-pc:~/learn/dir$ ls
folder

上面的命令中用到了mkdir,即是创建一个目录,非常常用的一个linux 命令。该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录.

在命令行内输入mkdir --help查看帮助信息.

amosli@amosli-pc:~/learn/dir$ mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist. Mandatory arguments to long options are mandatory for short options too.
-m, --mode=MODE set file mode (as in chmod), not a=rwx - umask
-p, --parents no error if existing, make parent directories as needed
-v, --verbose print a message for each created directory
-Z, --context=CTX set the SELinux security context of each created
directory to CTX
--help display this help and exit
--version output version information and exit Report mkdir bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils 'mkdir invocation'

由上面提示可以得知mkdir命令语法为:

mkdir [OPTION]... DIRECTORY...

其中[参数]都是可选,非必选。

选项介绍:
    -m: 对新建目录设置存取权限,也可以用chmod命令设置;

-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

-v:表示打印每一个创建的目录的信息。

-z:从语义来看,是为每个ctx创建目录时设置SELinux级安全上下文。

-help,-version一个是显示帮助信息,一个是显示版本号

下面就来举例说明参数内容:

实例:

如何创建多级目录?如何在amosli@amosli-pc:~/learn/dir/folder$目录下创建/par/child/grand

amosli@amosli-pc:~/learn/dir/folder$ mkdir par
#可不可以直接创那child/grand/目录?
amosli@amosli-pc:~/learn/dir/folder$ mkdir par/child/grand
mkdir: cannot create directory `par/child/grand': No such file or directory #答案是不可以
amosli@amosli-pc:~/learn/dir/folder$ mkdir par/child/
amosli@amosli-pc:~/learn/dir/folder$ mkdir par/child/grand
#创建完成
amosli@amosli-pc:~/learn/dir/folder$ cd par/child/grand/
amosli@amosli-pc:~/learn/dir/folder/par/child/grand$

有没有更方便的方法?

答案是有的,先删除刚才创建的目录:

amosli@amosli-pc:~/learn/dir/folder$ ls
par
amosli@amosli-pc:~/learn/dir/folder$ rm -rf *
amosli@amosli-pc:~/learn/dir/folder$ ls

然后开始一次性创建目录:

amosli@amosli-pc:~/learn/dir/folder$ mkdir -p par/child/grand
amosli@amosli-pc:~/learn/dir/folder$ cd par/child/grand/
amosli@amosli-pc:~/learn/dir/folder/par/child/grand$

加上-p参数即可。

实例2:

关于参数-v -m的使用:

amosli@amosli-pc:~/learn/dir/folder$ rm -rf * #删除目录
amosli@amosli-pc:~/learn/dir/folder$ mkdir -v -m par 
mkdir: created directory `par'
amosli@amosli-pc:~/learn/dir/folder$ ll
total
drwxrwxr-x amosli amosli 12月 : ./
drwxrwxr-x amosli amosli 12月 : ../
drwxrwxr-x amosli amosli 12月 : par/
amosli@amosli-pc:~/learn/dir/folder$

由上面的例子可以看出-m 是管理权限的,-v 是显示创建信息的。

-Z参数看了半天没搞明白到底怎么用,这里就跳过了。

二、创建文件(touch命令详解)

创建文件的方式比较多,如上一篇讲到的dd 命令,和之前的 echo "hello" > a.txt 类似的>创建文件,这里主要介绍touch命令

touch命令主要用来修改文件时间戳,或者新建一个不存在的文件

touch --help来看一下帮助信息:

amosli@amosli-pc:~/learn/dir/folder/par$ touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time. A FILE argument that does not exist is created empty, unless -c or -h
is supplied. A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output. Mandatory arguments to long options are mandatory for short options too.
-a change only the access time
-c, --no-create do not create any files
-d, --date=STRING parse STRING and use it instead of current time
-f (ignored)
-h, --no-dereference affect each symbolic link instead of any referenced
file (useful only on systems that can change the
timestamps of a symlink)
-m change only the modification time
-r, --reference=FILE use this file's times instead of current time
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
--time=WORD change the specified time:
WORD is access, atime, or use: equivalent to -a
WORD is modify or mtime: equivalent to -m
--help display this help and exit
--version output version information and exit Note that the -d and -t options accept different time-date formats. Report touch bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils 'touch invocation'

从中可以看出来与mkdir 很类似,touch 的命令语法如下:

touch [OPTION]... FILE...

其中,参数非必选,现在就来看下提供的参数有哪些,各有什么作用?

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

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

  -c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
-h ,不干扰引用 影响每个符号链接,而不是所有参考文件(只适用于系统的改变一个符号,时间戳)   -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--,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的.   --no-create 不会建立新档案。   --help 列出帮助信息
--version 列出版本信息

实例1:

创建文件a.txt

amosli@amosli-pc:~/learn/dir/folder/par$ touch  a.txt
amosli@amosli-pc:~/learn/dir/folder/par$ ls -l
total
-rw-rw-r-- amosli amosli 12月 : a.txt

实例2:

更改a.txt修改时间记录(-m参数):
amosli@amosli-pc:~/learn/dir/folder/par$ touch -m a.txt
amosli@amosli-pc:~/learn/dir/folder/par$ ls -l
total
-rw-rw-r-- amosli amosli 12月 : a.txt

实例3:

指定时间来创建文件(-t参数):

amosli@amosli-pc:~/learn/dir/folder/par$ touch -t 201812262315.34 b.txt
amosli@amosli-pc:~/learn/dir/folder/par$ ll
total
drwxrwxr-x amosli amosli 12月 : ./
drwxrwxr-x amosli amosli 12月 : ../
-rw-rw-r-- amosli amosli 12月 : a.txt
-rw-rw-r-- amosli amosli 12月 b.txt

实例4:

#将 file 的时间记录改变成与 referencefile 一样。
touch -r referencefile file
amosli@amosli-pc:~/learn/dir/folder/par$ touch -r b.txt  a.txt
amosli@amosli-pc:~/learn/dir/folder/par$ ls -l
total
-rw-rw-r-- amosli amosli 12月 a.txt
-rw-rw-r-- amosli amosli 12月 b.txt

linux shell 脚本攻略学习11--mkdir和touch命令详解的更多相关文章

  1. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  2. linux shell 脚本攻略学习13--file命令详解&comma;diff命令详解

    一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从 ...

  3. linux shell 脚本攻略学习 -- head命令详解&comma; tail命令详解

    当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...

  4. linux shell 脚本攻略学习12--文件权限详解&comma;chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  5. linux shell 脚本攻略学习16--wc命令详解,tree命令详解

    在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错 ...

  6. linux shell 脚本攻略学习14--head命令详解&comma;tail命令详解

    当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...

  7. linux shell 脚本攻略学习9--rename命令详解

    rename命令详解: 对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如: amosli@amosli-pc:~/learn/example$ ls abc.txt amosli@a ...

  8. linux shell 脚本攻略学习8---md5校验,sort排序&comma;uniq命令详解

    一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.t ...

  9. linux shell 脚本攻略学习7---tr命令详解

    tr命令详解 什么是tr命令?tr,translate的简写,translate的翻译: [trænsˈleit] vi. 翻译, 能被译出 vt. 翻译, 解释, 转化, 转变为, 调动 在这里用到 ...

随机推荐

  1. Caffe源码解析3:Layer

    转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ layer这个类可以说是里面最终的一个基本类了,深度网络呢就是 ...

  2. mybatis动态调用表名和字段名

    以后慢慢启用个人博客:http://www.yuanrengu.com/index.php/mybatis1021.html 一直在使用Mybatis这个ORM框架,都是使用mybatis里的一些常用 ...

  3. 源码安装python

    编译安装新版本python 一般来说python是linux系统的标配,但是版本一般却很老,而系统上面的很多服务可能与老的python存在依赖关系,我们又不能直接卸载.所以一般,我们可以在一个单独的目 ...

  4. 用Rational Rose来建立数据库表

    这里以MS SQL Server2000中已有的一个Northwind库为例,我们命名新的数据库名为NorthwindRose:我们只挑其中的两个表Customers和Employees做示例,另外我 ...

  5. 守望先锋overwatch美服外服设置方法

    打开:C:\Users\你的用户名\AppData\Roaming\Battle.net\Battle.net.config 替换为下方内容: { "Client": { &quo ...

  6. JQuery slideToggle闪烁问题及解决办法

    在使用slideToggle的时候,会出现在实现隐藏效果后闪烁一下在消失,找了很多原因,本以为是浏览器问题,后来发现是文档定义类型的问题... 原来页面的文档定义:<!DOCTYPE HTML ...

  7. meta标签常用属性整理

    在segmentfault看到这篇文章,觉得整理的很详细,所以转载过来和大家分享一下. 原文地址:http://segmentfault.com/blog/ciaocc/119000000240791 ...

  8. OAuth2的学习小结

    Spring Security json Access maven OAUTH2核心参数说明 grant_type参数说明表格: grant_type 说明 authorization_code 标准 ...

  9. windows Server 2003修改远程连接限制

    调整最大远程连接数: 1.开始->控制面板->添加或删除程序->添加/删除windows组件->选择“终端服务器”进行安装. 2.开始->运行->gpedit.ms ...

  10. mini-httpd源码分析-version&period;h

    /* version.h - version defines for mini_httpd */ #ifndef _VERSION_H_ #define _VERSION_H_ #define SER ...