2017-06-08 22 views
0

私はこのようにコピーしています:ファイルのコピー時にコピーの絶対パスを取得するにはどうすればよいですか?

cp "$input_file_absolut_path" "$output_directory_absolut_path" 

は今、私はコピーしたファイルに何かをしたい、しかし、私はできないのちょうど:

copy_absolut_path="$output_directory_absolut_path/$input_file_absolut_path" 

どれ先端のABSOLUTパスを取得しますコピーしたファイルですか?

+0

新しいStackoverflowユーザーは1000以上のupvotesを持つすべての投稿を読むように強制する必要があります:https://stackoverflow.com/a/965072/402322 – ceving

答えて

1

+0

早めの応答をありがとう、これは私の問題を解決しました。 –

+0

'$ output_directory_absolute_path'にすでに'/'がある場合はどうなりますか? –

+0

私はあまりにも、ありがとうことができる場合、私はupvoteだろう。 –

0

あなたのファイル名にスラッシュが含まれていない場合、あなたは連結することができます$output_directory_absolut_pathbasename "$input_file_absolut_path"はありません、あなたは$input_file_absolut_pathを使用する必要があります。しかし、あなたは$output_directory_absolut_pathにのみ、ファイル全体ではなく、ディレクトリ構造をコピーするので、あなたはこのようにそれをしなければならない。

copy_absolut_path="$output_directory_absolut_path/$(basename $input_file_absolut_path)" 

basenameディレクトリ構造なしであなただけのファイル名を取得します。次にそれをoutput_directory_absolut_pathと連結します。

+0

早期の応答をありがとう、私はあなたの前の1つを試みたが、私はそれを作るwork(newbie here).basenameは私の問題を解決しました。 –

0

ソリューション

copy_absolute_path="$(cd "$output_directory_absolute_path"; pwd)/${input_file_absolute_path##*/}" 

説明

output_directory_absolute_path/で終わる場合、その後$(cd "$output_directory_absolute_path"; pwd)は末尾/ことなくパスを返します。

$(input_file_absolute_path##*/}は、最後の/の後のすべてを返します。

関連する問題