
シェルスクリプトファイル(.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)の選択に進むことです。
名前を変更して保存している間は、末尾のスペースをすべて削除してください。それはあなたの問題を解決する必要があります:)