Bash
在linux中將文件從一個路徑複製到另一個路徑
我正在嘗試將文件從一條路徑複製到另一條路徑。我有一個文本文件,其中包含以下模式的所有文件名稱:
file-1.txt file-2.pdf file-3.ppt ....
我
.sh
使用以下程式碼創建了一個文件:#!/bin/bash file=`cat filenames.txt`; fromPath='/root/Backup/upload/'; toPath='/root/Desktop/custom/upload/'; for i in $file; do filePath=$fromPath$i #echo $filePath if [ -e $filePath ]; then echo $filePath yes | cp -rf $filePath $toPath else echo 'no files' fi done
上面的程式碼僅將文本中的最後一個文件名而不是全部複製到目標路徑。
file=/path/to/filenames.txt fromPath=/root/Backup/upload/ toPath=/root/Desktop/custom/upload/ cd "$fromPath" && xargs mv -t "$toPath" < "$file"
rsync
如果您還不熟悉它,您可以看一下。這看起來像是一個不需要自己的腳本的問題。看看這裡,或使用您的 Google foo。
rsync
您需要的選項可能是--files-from
.咒語將
rsync
類似於:rsync --files-from filenames.txt /root/Backup/upload /root/Desktop/custom/upload