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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux中同名目录复制,Linux下把文件夹复制到所有同名文件夹的脚本

發布時間:2024/1/1 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux中同名目录复制,Linux下把文件夹复制到所有同名文件夹的脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求:復制文件夾到Linux目錄下,覆蓋該Linux目錄下所有同名文件夾 目標:Linux下,執行本腳本,輸入文件夾名,即可批量復制覆蓋。 使用說明: 先把本腳本文件和要復制的文件夾移到將要覆蓋的Linux目錄,之后執行本腳本即可。 執行命令: ./tcopy.sh 1.如果提示-bash: ./tcopy.sh: Permission denied,那要先賦給其權限: chmod +x tcopy.sh 再執行./tcopy.sh即可。 2.覺著麻煩的話 sh tcopy.sh也行。

邏輯說明: 原系統的cp命令,是cp -i命令,這樣執行cp命令是無法自動覆蓋的。所以改文件~/.bashrc,最后再改回。 讀取用戶輸入文件名,用通配符把全文件夾放于數組 循環結構把原文件夾下所有文件放入所有數組。

代碼:#!/bin/sh

sed -i 's/alias cp/#&/' ~/.bashrc >/dev/null

echo "Please input the filename:"

read name

array=($name*)

name2="$name/*"

for ((i=1; i

do

cp -r $name2 ${array[$i]}

done

sed -i "/#alias cp/ialias cp='cp -i'" ~/.bashrc >/dev/null

sed -i '/#alias cp/d' ~/.bashrc >/dev/null

保存文件為tcopy.sh

代碼說明:

sed -i 's/alias cp/#&/' ~/.bashrc >/dev/null

把~/.bashrc文件中的alias cp一行給注釋掉

array=($name*)

使用通配符把所有文件夾放入數組

name2="$name/*"

name2為原文件夾目錄下所有文件

${#array}

獲取數組長度

cp -r $name2 ${array[$i]}

復制文件

sed -i "/#alias cp/ialias cp='cp -i'" ~/.bashrc >/dev/null sed -i '/#alias cp/d' ~/.bashrc >/dev/null

改回~/.bashrc文件

風險項: 原~/.bashrc文件未必是alias cp='cp -i'

如果使用本腳本后,出現復制文件每次都詢問是否覆蓋即:cp: overwrite, 請手動修改~/.bashrc文件,在alias cp一行的前方加上#

總結

以上是生活随笔為你收集整理的linux中同名目录复制,Linux下把文件夹复制到所有同名文件夹的脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

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