linux - CSV内のファイル名のリストを使用して、あるディレクトリから別のディレクトリにファイルをコピーするシェルスクリプト

linux bash shell find

コピーする必要があるファイルのリストがあります。ドライブを再帰的に検索し、そのファイル名がリストに存在する場合、それらのファイルを設定された場所にコピーします。リストはテキストファイルです/

テキストファイルは次のようになります。

A/ART-FHKFX1.jpg
B/BIG-085M.jpg
B/BIG-085XL.jpg
L/LL-CJFK.jpg
N/NRT-56808EA.jpg
P/PFE-25.10.jpg
P/PFE-7/60.jpg
P/PFE-7L.20.jpg
P/PFE-8.25.jpg
P/PFE-9.15.jpg
P/PFE-D11.1.tiff
P/PFE-D11.1.tiff
P/PFE-D12.2.tiff
P/PFE-D12.2.tiff
答え
findを使用すると時間がかかるので、可能であればlocateを使用してみてください。

複数のマッチがあるとどうなりますか? foo.barを検索してa / foo.barとb / foo.barを持っているような場合、その場合はどうしますか?

あなたのcsvにはパスが含まれているようです。前の例では、これらのパスはスクリプトが実行された場所から実際に有効であると想定しているので、その場合は次のようにします。

#!/bin/bash

while read path; do
    cp "$path" "$1"
done


次に、次のように呼び出します。

teh_script /path/to/destination < csv-file.csv
関連記事

ruby - 実行中のLinuxプロセスをリッスンするにはどうすればよいですか?

linux - 実行から変数を取得しますか?

c - -lrtを使用したPosixセマフォコンパイルエラー[重複]

linux - 送信された電子メールのデータを抽出して管理者に返信するLinuxシェルスクリプト

php - PHP-exec / shell_execの定期的な出力のキャプチャと表示?

xml - 「より小」文字を使用するEXECでのPhing構文エラー

linux - Linuxでロケートを使用して部分検索を行う方法は?

php - ローカル(Windows)とVPS(Fedora)でのPHPメモリ使用量の違い

c++ - statfsが奇妙な値を返す

python - python、すべてのファイルをディレクトリツリーの3番目、4番目、5番目から2番目のレベルに移動します