^Mを使用して生成されたファイルの宛先ディレクトリを解凍するとき

^Mを使用して生成されたファイルの宛先ディレクトリを解凍するとき

シェルスクリプトファイル(.sh)を使用してフォルダを解凍しようとしています。 zipフォルダのファイルを抽出していますが、作成したターゲットディレクトリが^ Mで終わります。

.shファイルでこのコマンドを使用します。

unzip /tmp/mram/zip/ApNonProjectExpVO.zip -d /tmp/mram/zip/

ログインパテを次のように表示します。

Test.sh

Tue Jan 10 23:21:21 CST 2017

Archive:  /tmp/mram/zip/ApNonProjectExpVO.zip
   creating: /tmp/mram/zip/^M/ApNonProjectExpVO/
  inflating: /tmp/mram/zip/^M/ApNonProjectExpVO/ApNonProjectExpVO.xml

答え1

このオプションの引数は、ファイルを保存するディレクトリを-d示します。unzipファイルを名前付きディレクトリ/tmp/mram/zip/^M^Mキャリッジリターンがある場所)に入れるようにunzipを指示したので、指示どおりに正確に行われます。

行末のCR文字をすべて削除すると他の問題が発生する可能性があるため、スクリプトを修正してください。 Unix では、CR は Windows のように行末マークの一部ではない一般的な文字です。

Windowsでシェルスクリプトを編集するときは、常にUnix行末(LFのみ)を使用するようにエディタを設定する必要があります。

答え2

Windowsでスクリプトを作成する場合、最も簡単な方法はNotepad ++でスクリプトファイルを開き、編集> EOL変換> Unix(LF)の選択に進むことです。

名前を変更して保存している間は、末尾のスペースをすべて削除してください。それはあなたの問題を解決する必要があります:)

関連情報