質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

1回答

1726閲覧

,cp,mvコマンドを実行したときに、重複がある場合suffixをつけてバックアップできますが、suffixが働かない場合がありました。これを回避できないでしょうか。

rocket

総合スコア41

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

1グッド

2クリップ

投稿2018/11/09 12:07

編集2018/11/12 02:01

追記
環境はMacOSです。Linuxでは問題がないと言うことでしたので。
それでさらに、念の為whichで確認したところ以下のように、coreutilsの物になっていました。
混乱させてしまいまして申し訳ないですが、以前に入れていたのを忘れていました。
/usr/local/opt/coreutils/libexec/gnubin/cp
/usr/local/opt/coreutils/libexec/gnubin/mv
先頭に追記させていただきます。


本文
cpさせる時に、移動先に同名のファイルがあると、cpが失敗するので、
失敗しない方法を探しました。
--backupを付ければよいこと、接尾辞を指定できることがわかりました。
以下のコマンドです。
cp --backup --suffix=_$(date +%Y%m%d_%H%M%S) ./conflict.txt ./test

しかし、ここでわからないことが起きました。
最初は、何度試しても明示したsuffixが付かず、以下の結果になりました。
このときは、最初に↓このsuffixをつけずに--backupだけで実行していて、
cp --backup ./conflict.txt ./test
そうすると、
既にデフォルトのサフィックスがついたバックアップファイルがある場合は、サフィックスが無視されるようでした。

それで質問なんですが、
これを回避できるように、デフォルトのサフィックスがついたバックアップがあったとしても、追加したsuffixが適用されるようにするにはどうしたらいいでしょうか?

conflict.txt conflict.txt~ conflict.txt.~1~ conflict.txt.~2~ conflict.txt.~3~ conflict.txt.~4~ conflict.txt.~5~

一応、デフォルトのサフィックスがついたファイルがない場合は、以下の通り正常に働きました。

ls

1conflict.txt 2conflict.txt_20181109_204815 3conflict.txt_20181109_204819 4conflict.txt_20181109_204820 5conflict.txt_20181109_204821
DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

emasaka

2018/11/09 13:28

OSは何でしょうか
rocket

2018/11/09 14:20

MacOSの10.14です。
otn

2018/11/10 01:38

Linuxでは上手く行くので、Macのタグを付けた方が良いかと。
rocket

2018/11/12 01:49

ご指摘助かります。ありがとうございます。
guest

回答1

0

ベストアンサー

man gcp で cp のマニュアル(日本語版)読むと書いてあるんですが、--backup オプションに simple パラメータ付けると、 numbered backups (.N) が存在していても --suffix で指定したバックアップファイルを作るようになります。

% ls -1 conflict.txt test test.~1~ % /usr/local/opt/coreutils/libexec/gnubin/cp -v --backup --suffix=_$(date +%Y%m%d_%H%M%S) ./conflict.txt ./test './conflict.txt' -> './test' (backup: './test.~2~') % /usr/local/opt/coreutils/libexec/gnubin/cp -v --backup=simple --suffix=_$(date +%Y%m%d_%H%M%S) ./conflict.txt ./test './conflict.txt' -> './test' (backup: './test_20190527_061900')

--backup だけの場合、VERSION_CONTROL 環境変数の値を使います。それもない場合のデフォルトのバックアップ方法は existing です。
GNU Coreutils: Backup options

Coreutils コマンドのこの挙動はどの Linux でも Homebrew でも変わらないかと思います。

投稿2019/05/27 06:21

criticabug

総合スコア71

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rocket

2019/07/23 02:24

ありがとうございます。参考になりました。 ご返事が遅れて申し訳ありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問