リストからcpファイルへのBashスクリプト

リストからcpファイルへのBashスクリプト

DAV2fsを使用してBox.comに多数のファイルをコピーする必要があります。私は一度にいくつかのパフォーマンスしかコピーできないことを知り、箱が追いつくか何か間違っているまで数分待たなければなりませんでした。

だから私がしたことは、 "find ./>outfile.txt"を使ってすべてのファイル/ディレクトリをリストすることでした。

ファイルのリストを繰り返しながら、100コピー(または何でも)後10分を待ちたいです。どうすればいいですか? cp -r を使用しない場合、outfile.txt は次のように表示されます。

/dirctory1
/directory1/file.txt
/directory1/file2.txt

cpはディレクトリを無視するため、fileとfile2はコピーされません。 cp -rを実行すると、ディレクトリ1とすべての内容が実行されるため、ファイル数が減ります。

編集する:

明確にするためにcp部分に興味があります。具体的には、-rを実行せずにcpにディレクトリを作成させるにはどうすればよいですか?これによりカウントが失敗します。

ベストアンサー1

この試み。 (検証されていません。)

destination=     # assign 
i=0
while read line; do
    cp --parents "$line" "$destination"
    ((i++))
    [ $i -eq 100 ] && sleep 600 && i=0
done < outfile.txt
# or: done < <(find ... and so on) # to avoid creating the temp file

おすすめ記事