スペースを含むファイルのリストをコピーするシェルスクリプト

スペースを含むファイルのリストをコピーするシェルスクリプト

ファイル名を使用してファイルの絶対位置を一覧表示し、別の場所にコピーする小さなスクリプトを作成しようとしています。

ファイルコンテンツのtest.txt例:

/home/public/Music/Disk/GameOfThrones/Season1/01 Main Title.mp3

試してみるスクリプト:

for file in `cat test.txt`; do cp "$file" temp ; done

しかし、スクリプトは3つのファイルがあると思います。その他の検索結果 以下の文書が出ました。

OIFS="$IFS"
IFS=$'\n'
for file in `cat test.txt`; do cp "$file" temp ; done
IFS="$OIFS"

これは、文字「n」のすべての発生を改行文字に置き換えるようです。

それでは、正しく行う方法は何ですか?

ベストアンサー1

以下ではなく、whileループを使用してください。readfor

while read -r file ; do
    cp "$file" temp
done < test.txt

おすすめ記事