Linux 基礎命令 -- cp

命令介紹

命令:cp 複製文件或目錄

用法: cp [OPTION]… [-T] SOURCE DEST cp 選項 源目標

​ cp [OPTION]… SOURCE… DIRECTOR cp 選項 源目錄 新目錄

​ cp [OPTION]… -t DIRECTORY SOURCE… cp 選項 目錄源

命令選項

[root@fp-21 ~]# cp --help

  -a, --archive                # 複製目錄時是使用,相當於-d、-p、-R參數組合
  -d                           # 複製的源文件如果是鏈接文件,則複製鏈接文件而不是指向的文件本身
  -f, --force                  # 強制複製,如果目標存在,不會進行-i、-u選項,直接覆蓋
  -i, --interactive            # 複製時如果目標文件已經存在,詢問是否替換
  -H                           # 遵循源代碼中的命令行符號鏈接
  -l, --link                   # 不復制文件,生成硬鏈接文件
  -L, --dereference            # 始終遵循源中的符號鏈接
  -n, --no-clobber             # 不覆蓋現有的文件
  -P, --no-dereference         # 永遠不要跟隨源代碼中的符號鏈接
  -p                           # 除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中
  -R, -r, --recursive          # 遞歸複製目錄
  -s, --symbolic-link          # 不復制文件,生成軟鏈接文件
  -S, --suffix=SUFFIX          # 覆蓋通常的備份後綴
  -t                           # 將所有源參數複製到目錄中
  -T, --no-target-directory    #  DEST 視爲普通文件
  -u, --update                 # 若文件同名,屬性不一樣(如修改時間,大小等),則覆蓋目標文件
  -v, --verbose                # 複製的詳細解釋
  --help                       # 幫助文檔
  --version                    # 版本信息

命令實例

# 複製目錄時是使用,相當於-d、-p、-R參數組合
[root@fp-21 opt]# cp -a apple dir/
[root@fp-21 opt]# ll dir/
total 0
-rw-r--r--. 1 root root 0 Mar  4 22:05 apple

# 複製的源文件如果是鏈接文件,則複製鏈接文件而不是指向的文件本身
[root@fp-21 opt]# cp -d link_banana dir/
[root@fp-21 opt]# ll dir/
total 0
-rw-r--r--. 1 root root 0 Mar  4 22:05 apple
lrwxrwxrwx. 1 root root 6 Mar  4 23:15 link_banana -> banana

# 複製時如果目標文件已經存在,詢問是否替換
[root@fp-21 opt]# cp -i apple dir/apple 
cp: overwrite ‘dir/apple’? y

# 不覆蓋現有的文件
[root@fp-21 opt]# cp -n apple dir/apple

# 除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中
[root@fp-21 opt]# ll dir/apple 
-rw-r--r--. 1 root root 0 Mar  4 22:05 dir/apple
[root@fp-21 opt]# chown bin:bin apple 
[root@fp-21 opt]# cp -p apple dir/apple 
cp: overwrite ‘dir/apple’? y
[root@fp-21 opt]# ll dir/apple 
-rw-r--r--. 1 bin bin 0 Mar  4 22:05 dir/apple

# 遞歸複製目錄
[root@fp-21 opt]# mkdir dir.bak
[root@fp-21 opt]# cp -r dir ./dir.bak/
[root@fp-21 opt]# tree dir.bak/
dir.bak/
└── dir
    ├── apple
    ├── banana
    └── link_banana -> banana

# 若文件同名,屬性不一樣(如修改時間,大小等),則覆蓋目標文件
[root@fp-21 opt]# echo "改變文件大小" > apple 
[root@fp-21 opt]# cp -u apple dir/apple 
cp: overwrite ‘dir/apple’? y
[root@fp-21 opt]# ll dir/apple 
-rw-r--r--. 1 bin bin 19 Mar  4 23:36 dir/apple

# 複製的詳細解釋
[root@fp-21 opt]# cp -v orange dir/
‘orange’ -> ‘dir/orange’

link 查看 Linux 基礎命令

只有注入思想的博客纔是好的博客

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