900個のファイルを含むディレクトリから150個のファイルをコピーする必要があります。テキストファイルには150個のファイル名がすべて含まれています。list.txt
Linuxではどうすればいいですか?
答え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