〜/ binフォルダーを上書きしました


3

どういうわけか私は誤って自分のを上書きしました~/bin

次のコマンドを入力しました。 $ cp /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin

ファイルをbinフォルダにコピーしようとしていたが、代わりにフォルダを上書きしていた。

今:

$ cd ~/bin
bash: cd: /home/dsg/bin: Not a directory

そして:

$ diff /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin

違いはありません。

私は何をしますか?


3
バックアップから復元しますか?
ダニエルベック

バックアップなし。デフォルトに戻す方法はありますか?これはほとんど新規インストールなので、それほど多くはありませんでした。システム全体の再インストールを回避しようとしています。
dsg

2
@dsg:デフォルトで~/binは、存在しません。自分で作成しておく必要があります。rm -f ~/bin && mkdir ~/bin
grawity

3
grawityのコメントに追加するには、cpコマンドの前に〜/ binがディレクトリとして存在していた場合、cpコマンドは.jarファイルを〜/ binに置き換えずに〜/ binにコピーします。したがって、cpコマンドの前に〜/ binディレクトリがあったとは思わない。
ゲイリージョン

ああ、素晴らしい!ありがとう!@garyjohn、確認済み。私は持っているrm ~/binmkdir ~/bin、私はコピーを行うときに、あなたが言うようになりましたファイルがディレクトリに移動されます。
dsg

回答:


6

使用したコマンドを使用してファイルをコピーする場合:

$ cp /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin

ターゲットが何であるかによって異なることが起こります。

1)〜/ binはディレクトリです

ファイルは〜/ binディレクトリにコピーされ、ファイルの元の名前が保持されます。

2)〜/ binは通常のファイルです

ファイル〜/ binは、ソースファイルによって上書きされます。

3)〜/ binは存在しません

ソースファイルが宛先名にコピーされ、新しいファイルが作成されます。

デフォルトでは〜/ binディレクトリは存在しないため、過去に〜/ binというディレクトリを作成していない限り、オプション3が実行されます。〜/ binが存在する場合、cpコマンドが上書きするためには、ディレクトリではなく通常のファイルである必要があります。

〜/ binファイルを削除し、次のディレクトリを作成する必要があります。

$ rm ~/bin
$ mkdir ~/bin

その後、以前に使用したのと同じコマンドを使用して、jarファイルをそこにコピーできます。

(@grawityと@garyjohnに感謝します。この回答の基になった質問へのコメントをお寄せください。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.