linux上文件管理类命令总结

Linux上的文件管理类命令有三个,分别是:cp、mv、rm命令。

cp:
 复制文件和目录的命令。cp命令分为两种,分别是:单源复制和多源复制:
 单源复制:
   如果目标文件和目录(DEST)不存在,则实现创建此文件,并复制源文件的数据流至DEST中。
   如果DEST文件存在:
    如果DEST是非目录文件,则会覆盖目标文件;
    如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,再复制文件。
 多源复制:
  如果目标文件不存在,错误;
  如果目标文件存在:
    如果目标文件是非目录文件,错误;
    如果目标是目录文件,分别复制每个文件至目标目录中,并保持原名。

格式:
cp [选项] 源目录或文件 目标目录或文件

选项:
-i:交互式复制,覆盖之前提醒用户确认;
-f:强制覆盖,无论文件或目录是否存在;
-r/R :递归复制,将指定目录下的所有文件与子文件一并处理;
-d:当复制符号链接时,把目标文件或目录也建立为符号链接,并指向源文件或目录链接的原始文件或目录;
-p:保留源文件或目录的属性;
-a:同“-dpR”选项
--preserve=
 mode:权限
 ownership:属主或属组
 timestamps:时间戳
 context:安全标签
 links:符号链接
 xattr:扩展属性
 all:上述所有属性

参数:
源文件:指定源文件列表,默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-r选项;
目标文件:指定目标文件,当源文件为多个文件时,要求目标文件为指定的目录。

实例:
1、复制/var/log目录下的yum.log文件到/app目录下:

[root@centos7mage app]# ls -l /var/log/yum.log
-rw-------. 1 root root 3000 Sep  5 15:02 /var/log/yum.log
[root@centos7mage app]# cp /var/log/yum.log  /app/
[root@centos7mage app]# ls -l /app
total 4
-rw-------. 1 root root 3000 Oct  9 11:06 yum.log

2、-i选项,覆盖之前提醒用户确认,只有root账号默认cp的别名是cp -i

[root@centos7mage app]# alias
alias cp='cp -i'
[root@centos7mage app]# cp /var/log/yum.log  /app
cp: overwrite ‘/app/yum.log’? y

3、-r选项,将指定目录下的所有文件与子目录一并处理

[root@centos7mage app]# cp /var/log /app
cp: omitting directory ‘/var/log’
[root@centos7mage app]# cp -r /var/log /app
[root@centos7mage app]# ls -l /app
total 8
drwxr-xr-x. 7 root root 4096 Oct  9 12:20 log
-rw-------. 1 root root 3000 Oct  9 12:18 yum.log

4、-d选项,当复制符号链接时,把目标文件或目录也建立为符号链接,并指向源文件或目录链接的原始文件或目录

[root@centos7mage app]# ls -l /etc/favicon.png
lrwxrwxrwx. 1 root root 56 Aug 21 14:24 /etc/favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
[root@centos7mage app]# cp -d /etc/favicon.png /app/
[root@centos7mage app]# ls -l /app
total 8
lrwxrwxrwx. 1 root root   56 Oct  9 14:10 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 7 root root 4096 Oct  9 12:20 log
-rw-------. 1 root root 3000 Oct  9 12:18 yum.log

5、-p选项,保留源文件或目录的属性

[root@centos7mage etc]# stat /var/log/yum.log
  File: ‘/var/log/yum.log’
  Size: 3000          Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 67165985    Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:rpm_log_t:s0
Access: 2018-09-18 15:10:47.132632000 +0800
Modify: 2018-09-05 15:02:27.124789000 +0800
Change: 2018-09-05 15:02:27.124789000 +0800
Birth: -
[root@centos7mage etc]# cp /var/log/yum.log  /app
cp: overwrite ‘/app/yum.log’? y
[root@centos7mage etc]# stat /app/yum.log
  File: ‘/app/yum.log’
  Size: 3000          Blocks: 8          IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 67          Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2018-09-18 15:12:20.186135505 +0800
Modify: 2018-09-18 16:42:07.610501500 +0800
Change: 2018-09-18 16:42:07.610501500 +0800
Birth: -
上述普通复制的话,目标文件的时间戳发生了改变,如果不想改变文件属性,则增加-p选项

[root@centos7mage etc]# cp -p  /var/log/yum.log  /app
cp: overwrite ‘/app/yum.log’? y
[root@centos7mage etc]# stat /app/yum.log
  File: ‘/app/yum.log’
  Size: 3000          Blocks: 8          IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 67          Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2018-09-18 15:10:47.132632000 +0800
Modify: 2018-09-05 15:02:27.124789000 +0800
Change: 2018-09-18 16:44:22.872098496 +0800
Birth: -
这样复制的目标文件或目录则和源文件的属性相同了。

mv:
  移动或重命名文件。

用法:
mv [选项] SOURCE DIRECTORY

选项:
-i:交互式操作,覆盖前先询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录。

实例:
1、重命名,把yum.log重命名为yum1.log

[root@centos7mage app]# ls -l
total 8
lrwxrwxrwx. 1 root root   56 Oct  9 14:10 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 7 root root 4096 Oct  9 12:20 log
-rw-------. 1 root root 3000 Oct  9 12:18 yum.log
[root@centos7mage app]# mv yum.log yum1.log
[root@centos7mage app]# ls-l
-bash: ls-l: command not found
[root@centos7mage app]# ls -l
total 8
lrwxrwxrwx. 1 root root   56 Oct  9 14:10 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 7 root root 4096 Oct  9 12:20 log
-rw-------. 1 root root 3000 Oct  9 12:18 yum1.log

2、移动文件yum1.log从/app目录下移动到/app/log下

[root@centos7mage app]# mv yum1log log/
[root@centos7mage app]# ll
total 4
lrwxrwxrwx. 1 root root   56 Sep 18 16:13 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 7 root root 4096 Sep 18 17:06 log
[root@centos7mage app]# ll log
total 3324
-rw-------. 1 root root    3000 Sep  5 15:02 yum1log

3、-f选项,直接覆盖重复的文件或目录

[root@centos7mage app]# ll
total 8
lrwxrwxrwx. 1 root root   56 Sep 18 16:13 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 7 root root 4096 Sep 18 17:11 log
-rw-------. 1 root root 3000 Sep  5 15:02 yum.log
[root@centos7mage app]# mv yum.log log/
mv: overwrite ‘log/yum.log’? n
[root@centos7mage app]# mv -f yum.log log/
[root@centos7mage app]# ll
total 4
lrwxrwxrwx. 1 root root   56 Sep 18 16:13 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 7 root root 4096 Sep 18 17:12 log

4、-b选项,若文件存在,则覆盖前为其创建一个备份,yum.log~则为备份文件。

[root@centos7mage app]# mv -b log/yum.log  /app
mv: overwrite ‘/app/yum.log’? y
[root@centos7mage app]# ll
total 12
lrwxrwxrwx. 1 root root   56 Sep 18 16:13 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 7 root root 4096 Sep 18 17:17 log
-rw-------. 1 root root 3000 Sep 18 17:17 yum.log
-rw-------. 1 root root 3000 Sep  5 15:02 yum.log~

rm:
 删除文件或目录。
 注意:使用rm命令要格外小心,一旦删除则无法恢复。所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)

用法:
rm [选项] 文件

选项:
-i:删除已有文件或目录之前先询问用户。(只有root用户默认rm=rm -i)
-f:前置删除文件或目录
-r/R:递归处理,将指定目录下的所有文件与子目录一并处理。

猜你喜欢

转载自blog.csdn.net/qq_42216173/article/details/82980301