ファイル名で複数のファイルをコピーする

ファイル名で複数のファイルをコピーする

900個のファイルを含むディレクトリから150個のファイルをコピーする必要があります。テキストファイルには150個のファイル名がすべて含まれています。list.txtLinuxではどうすればいいですか?

答え1

あなたはこれを試すことができますrsync

rsync -av --files-from=list_of_filenames.txt SOURCE_DIR DESTINATION_DIR/

ターゲットディレクトリの末尾のスペースを書き留めます。rsync現在の作業ディレクトリで動作するため、ファイルリストのファイルパスはそのディレクトリに基づいている必要があります。

答え2

ファイルを繰り返して、以下をコピーします。

while read file; do cp "$file" /path/to/target/dir; done < list.txt

答え3

ファイルパスを含むリストがエスケープされている場合は、次のコマンドを使用できます。

cp -v $(<list.txt) dest/

リストが長すぎる場合は、次を使用してください。while解決策他の答えで提案したように。

答え4

私はそうします:

for f in `cat filenames.txt`; do cp $f destination; done

destinationこれをファイルの保存先に置き換えます。私はテスト実行を通して私のコマンドが正しいことを確認するためにecho後で1つを挿入することがよくあります。do

関連情報