Skip to content

Instantly share code, notes, and snippets.

@bz0
Last active November 11, 2019 23:35
Show Gist options
  • Save bz0/df6568b3f613d0a005bc075866fa30e9 to your computer and use it in GitHub Desktop.
Save bz0/df6568b3f613d0a005bc075866fa30e9 to your computer and use it in GitHub Desktop.
linux cpコマンドについて
  • オンラインマニュアル
  • 「-v」オプションでコピーしたファイルの名前が表示される:デバッグに利用できる
  • 存在しないディレクトリを自動生成してくれない?
    • https://qiita.com/yutaro1985/items/28ba8dd448751b55874e
    • どんなときに作ってくれる?:「cp -r hoge huga/hoge」
    • hogeディレクトリが既に存在する場合→huga/hoge/hoge
    • hogeディレクトリが存在しない場合→huga/hoge
    • 問題:既にディレクトリが存在する場合としない場合で結果が異なること
    • 対策:
      • ディレクトリのコピーは「rsyncコマンドを使う」
      • ディレクトリは必ずある前提として使う
      • 「cp -rf --parents」でもよさそう(パス全部コピー)
        • コピーしたい対象のディレクトリまで移動してから実行させれば必要なディレクトリのみコピーできる
  • オプション「--parent」の挙動について
  • 強制上書き:cp -f
  • cp: omitting directoryエラー→ディレクトリをコピーする場合のオプションが足りない「-r」
    • \cp -rf --parents /etc/logrotate.d /var/www/
    • /var/www/etc/logrotate.d/xxx
  • オプション「-r」と「-R」の違い
    • cp -r でディレクトリを再帰的にコピーする
    • シンボリックリンクを通常のファイルとしてコピーしてしまうので、使わない方がよい
    • -R オプションを使うことで、シンボリックリンクをシンボリックリンクのままコピーしてくれる
    • FreeBSD・Linux いずれも、オンラインマニュアルに「-r オプションは使うな」と書いてある
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment