文件管理之:创建/复制/删除/移动

= =创建

文件  touch

[root@RHEL6 data]# touch abc.log
[root@RHEL6 data]# touch {jason.1,jason.2,jason.3}
[root@RHEL6 data]# touch {1..20}
[root@RHEL6 data]# touch date +%F-{a..g}.txt

目录   mkdir

【选项】
-Z:设置安全上下文,当使用SELinux时有效;

-m=<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;

-p递归创建
-v 为每个目录显示提示信息,主要用于检测文件是否存在
--version 显示版本信息。

[root@RHEL6 data]# mkdir dir{1,2} //创建dir1和dir2
[root@RHEL6 data]# mkdir date +%F-{test1,test2} //以当前时间创建“2018-09-07-test1”
[root@RHEL6 data]# mkdir -v date +%F-{test1,test2,test3,test4} //-v参数表示先检测文件夹是否存在,如果存在就不创建,如果不存在就创建
[root@RHEL6 data]# mkdir -p 2018-09-07-test1/a/b{1..3} //-p参数表示递归创建,可以与-v复用
[root@RHEL6 data]# mkdir -m 700 2018-09-07-test2/abc
[root@RHEL6 data]# ll 2018-09-07-test2
drwx------. 2 root root 4096 Sep 7 14:27 abc //-m 参数表示在目录/2018-09-07-test2下建立子目录abc,并且只有文件主有读、写和执行权限,其他人无权访问

= =复制 cp= =

 【选项】

-a:此参数的效果和同时指定"-dpR"参数相同;

-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

-f:强行复制文件或目录,不论目标文件或目录是否已存在;

-i:覆盖既有文件之前先询问用户;

-l:对源文件建立硬连接,而非复制文件;

-p:保留源文件或目录的属性;

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;

-s:对源文件建立符号连接,而非复制文件;

-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;

-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

-b:覆盖已存在的文件目标前将目标文件备份;

-v:详细显示命令执行的操作。

   【避坑】

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,
用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
cp(copy)命令将一个文件、多个文件或目录复制到另一个地方。
选项 -R 允许递归复制目录(一般来说,命令中的 -R 或 -r 经常有递归的意思)。
如果 cp 命令的最后参数是目录,所提到的文件将被复制到该目录下。
注意:默认情况下,cp 命令将“覆盖”已经存在的文件。

[root@RHEL6 2018]# cp -rv 1.txt 2.txt httpd.conf number.log 2018/ //拷贝所有文件,并显示结果详细信息
cp -rv /application/apache /application/nginx/ /data/2018 //递归拷贝所有文件到2018下
例:mkdir -p ./files && cp /tmp/test.txt "$_"

= = 移动 mv
【选项】
--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;

-f:force强制的意思,如果目标文件已经存在,不会询问是否覆盖。

-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;

--target-directory=<目录>:指定源文件要移动到目标目录;

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

= = 删除 rm
【选项】

-f, --force    忽略不存在的文件,从不给出提示。
   -i, --interactive 进行交互式删除
   -r, -R, --recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。
   -v, --verbose    详细显示进行的步骤
   --help     显示此帮助信息并退出
   --version  输出版本信息并退出

[root@RHEL6 data]# rm -i *.txt // 删除任何.txt文件;删除前逐一询问确认
rm: remove regular file `1.txt'?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章