[英][Unix][Shell Script] Copy all files from one folder to the other
我正在嘗試為日常cronjob創建一個bash shell腳本。
該腳本是將所有帶有txt擴展名的文件(包括子目錄)從文件夾“ fromDir”復制到文件夾“ toDir”。
如果“ toDir”目錄不存在,它也會建立目錄。
我試圖在這里使用tar壓縮文件並在移動后進行解壓縮以加快傳輸過程中的時間,目標文件夾的結構應與原始文件夾完全相同。
#!/bin/bash -l
fromDir='c:/fromFolder/' ;
toDir='c:/toFolder/' ;
find $fromDir -maxdepth 3 -name '*.txt' -print |
tar zcvf - -T - |
mkdir -p -m 777 $toDir ;
cd $toDir && tar zxvf -
首先看到我的評論,然后,如果您的tar
不支持-C
參數(更改為dir befor tar),則可以嘗試以下操作:
#!/bin/bash
fromDir='c:/fromFolder/' ;
toDir='c:/toFolder/' ;
mkdir -p -m 777 $toDir ;
find $fromDir -maxdepth 3 -name '*.txt' -print |
tar zcf - -T - | (
cd $toDir
tar zxvf -
)
如果您可以使用rsync ,則可以嘗試以下操作:
rsync -av --include="*/" --include="*.txt" --exclude="*" ~/from/ ~/to/ --dry-run
這可以解釋為包含*.txt
每個目錄並排除其他任何內容(順序很重要)
--dry-run
選項僅用於打印將要執行的操作,但不會復制任何文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.