日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux使用shell脚本批量拷贝文件

發布時間:2024/1/8 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux使用shell脚本批量拷贝文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在日常工作中我們經常會碰到在linux下導出文件的工作,如果挨個拷貝就很麻煩也很不方便。

  • 方法一:for循環的拷貝
    這種方法適合輕量拷貝,我們把需要拷貝的文件名單獨列出來,放在name.txt文件中,通過循環遍歷這個文件就可以實現批量拷貝。
    注意:for 循環中會根據空格為區分字段,如果文件命中含有空格,則推薦使用while循環。
#!/usr/bin/env bash file="name.txt" for state in $(cat $file) do echo "visit beautiful $state" done
  • 方法二:while 循環的拷貝
#!/usr/bin/env bash echo "----copy report start--------" cat report_name.txt | while read line doecho "copy: ${line}"cp "/home/web_app/files/${line}" /home/report_files done echo "----copy report end--------"
  • 小技巧:

(1).cp [options] <source file or directory> <target file or directory>
options選項包括:

  • a 保留鏈接和文件屬性,遞歸拷貝目錄,相當于下面的d、p、r三個選項組合。
  • d 拷貝時保留鏈接。
  • f 刪除已經存在目標文件而不提示。
  • i 覆蓋目標文件前將給出確認提示,屬交互式拷貝。
  • p 復制源文件內容后,還將把其修改時間和訪問權限也復制到新文件中。
  • r 若源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。當然,目標文件必須為一個目錄名。
  • l 不作拷貝,只是鏈接文件。
    -s 復制成符號連結文件 (symbolic link),亦即『快捷方式』檔案;
    -u 若 destination 比 source 舊才更新 destination。

示例:
1、將文檔 file1復制成file2,復制后名稱被改file2
cp -i file1 file2
或,
cp file1 file2
2、將文檔 file1復制到dir1目錄下,復制后名稱仍未file1
cp -i file1 dir1
或,
cp file1 dir1
3、將目錄dir1復制到dir2目錄下,復制結果目錄被改名為dir2
cp -r dir1 dir2
4、將目錄dir1下所有文件包括文件夾,都復制到dir2目錄下
cp -r dir1/. dir2
常見錯誤:
1、提示cp: omitting directory錯誤
復制目錄時,使用-r選項即可遞歸拷貝,如下:
cp -r dir1 dir2

(2)Linux中basename和dirname命令的妙用

basename和dirname命令的妙用

(3)處理包含空格和特殊字符的文件名

  • 可以使用雙引號或者單引號將拷貝文件引用起來" "或者' '
  • 可以使用轉義\

總結

以上是生活随笔為你收集整理的Linux使用shell脚本批量拷贝文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。