Linux のユーザ設定関連コマンド

最近、ARM OS (Raspbian, Armbian)の環境構築まわりの記事を書くことが増えたので、足回りを固めるためにコマンドのヘルプを転載します。

usermod

$ usermod --help

使い方: usermod [オプション] LOGIN

オプション:
  -c, --comment COMMENT         GECOS フィールドの値を再設定する
  -d, --home HOME_DIR           ユーザアカウントのホームディレクトリを
                                再設定する
  -e, --expiredate EXPIRE_DATE  アカウント期限切れの日を EXPIRE_DATE にする
  -f, --inactive INACTIVE       パスワードを期限切れ後に無効化する日数を
                                INACTIVEにする
  -g, --gid GROUP               主グループを GROUP に変更する
  -G, --groups GROUPS           新たな補助グループのリストを与える
  -a, --append                  ユーザを (-G で指定された) 補助グループ群
                                GROUPS に追加する。他のグループからの削除は
                                行わない。
  -h, --help                    このヘルプを表示して終了する
  -l, --login NEW_LOGIN         ログイン名を変更する
  -L, --lock                    このユーザアカウントをロックする
  -m, --move-home               現ホームディレクトリの内容を新たな場所に
                                移動する (-d が指定された場合のみ)
  -o, --non-unique              一意でないユーザ (UID の重なるユーザ) を
                                許可する
  -p, --password PASSWORD       新たな暗号化済みパスワードを与える
  -R, --root CHROOT_DIR         chroot するディレクトリ
  -s, --shell SHELL             ユーザのシェルを新たに SHELL にする
  -u, --uid UID                 このユーザの UID を変更する
  -U, --unlock                  このユーザアカウントのロックを解除する
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user            このユーザアカウントへの新規 SELinux
                                ユーザマッピング

groupmod

$ groupmod --help

使い方: groupmod [オプション] GROUP

オプション:
  -g, --gid GID                 グループの ID を GID に変更します
  -h, --help                    このヘルプを表示して終了する
  -n, --new-name NEW_GROUP      名前を NEW_GROUP に変更する
  -o, --non-unique              他と重なる GID を許可する
  -p, --password PASSWORD       パスワードをこの (暗号化された) PASSWORD
                                に変更する
  -R, --root CHROOT_DIR         chroot するディレクトリ

passwd

$ passwd --help

使い方: passwd [オプション] [LOGIN]

オプション:
  -a, --all                     全アカウントのパスワード状態をレポートする
  -d, --delete                  指定アカウントのパスワードを削除する
  -e, --expire                  指定アカウントのパスワードを期限切れにする
  -h, --help                    このヘルプを表示して終了する
  -k, --keep-tokens             期限切れの場合にのみパスワードを変更する
  -i, --inactive INACTIVE       期限切れ後のパスワード無効化日数を
                                INACTIVE にする
  -l, --lock                    指定アカウントをロックする
  -n, --mindays MIN_DAYS        パスワードが変更できるまでの最短日数を
                                MIN_DAYS に変更する
  -q, --quiet                   表示抑制モード
  -r, --repository REPOSITORY   リポジトリ REPOSITORY のパスワードを変更する
  -R, --root CHROOT_DIR         chroot するディレクトリ
  -S, --status                  指定アカウントのパスワードの状態を報告する
  -u, --unlock                  指定アカウントのロックを解除する
  -w, --warndays WARN_DAYS      期限切れ警告の日数を WARN_DAYS にする
  -x, --maxdays MAX_DAYS        パスワードが変更できる期間の最長日数を
                                MAX_DAYS に変更する

tee

$ tee --help
tee - read from standard input and write to standard output and files

$ tee --help
使用法: tee [オプション]... [ファイル]...
標準入力を各 FILE にコピーし、標準出力にも出力します。

  -a, --append              指定されたファイルに追加し、上書きしない
  -i, --ignore-interrupts   割込みシグナルを無視
  -p                        diagnose errors writing to non pipes
      --output-error[=MODE]   set behavior on write error.  See MODE below
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

tar

$ tar --help
※ tar 引数の”主操作モード”は、一つのみ指定可能。

$ tar --help
使用法: tar [オプション...] [ファイル]...
GNU 'tar'
は多くのファイルを一つのテープやディスクのアーカイブにまとめ,
更に
そこから個々のファイルを取り出すことができます.

例:
  tar -cf archive.tar foo bar  # ファイル foo と bar から archive.tar
作成.
  tar -tvf archive.tar         # archive.tar
内の全ファイルを詳しく一覧表示.
  tar -xf archive.tar          # archive.tar
から全ファイルを取り出す.

 ローカルファイル名選択:

      --add-file=FILE        指定された FILE をアーカイブに追加
                             (ダッシュ '
                             で始まるファイル名の場合に便利)
  -C, --directory=DIR        ディレクトリ DIR へ移動
      --exclude=PATTERN      PATTERN に一致するファイルを除外
      --exclude-backups
                             バックアップを除外してファイルをロック
      --exclude-caches       タグファイル自身を除く CACHEDIR.TAG
                             を含むディレクトリの内容を除外
      --exclude-caches-all   CACHEDIR.TAG を含むディレクトリを除外
      --exclude-caches-under CACHEDIR.TAG
                             を含むディレクトリ以下の全てを除外
      --exclude-ignore=FILE  各ディレクトリの除外パターンをFILE
                             (存在する場合) から読み取り
      --exclude-ignore-recursive=FILE
                             各ディレクトリおよびそのサブディレクトリの除外パターンをFILE
                             (存在する場合) から読み取り
      --exclude-tag=FILE     FILE 自身を除く FILE
                             を含むディレクトリの内容を除外
      --exclude-tag-all=FILE FILE を含むディレクトリを除外
      --exclude-tag-under=FILE   FILE
                             を含むディレクトリ以下の全てを除外
      --exclude-vcs
                             バージョン管理システムのディレクトリを除外
      --exclude-vcs-ignores
                             除外パターンをVCS無視ファイルから読み取り
      --no-null              前の --null オプションの効果を無効化

      --no-recursion
                             ディレクトリを自動的に下っていかない
      --no-unquote
                             入力ファイルまたはメンバー名を引用終了しない
      --no-verbatim-files-from   -T
                             がファイル名をダッシュで始まるオプションとして処理
                             (標準)
      --null                 -T が null で終わる名前を読み込み;
                             --verbatim-files-from を暗示
      --recursion            ディレクトリを順繰りに下っていく
                             (default)
  -T, --files-from=FILE      抽出または作成する名前をファイル
                             FILE から取得
      --unquote
                             入力ファイルまたはメンバー名を引用終了する
                             (標準)
      --verbatim-files-from  -T
                             がファイル名を文字通りに読み込み
                             (オプション処理なし)
  -X, --exclude-from=FILE    FILE に列挙されたパターンを除外

 ファイル名一致オプション
 (除外/包含の両パターンに作用):

      --anchored             ファイル名の先頭とパターンが一致
      --ignore-case          大文字小文字を無視
      --no-anchored          任意の '/' 以降にパターンが一致
                             (標準で除外)
      --no-ignore-case       大文字小文字を考慮して一致 (標準)
      --no-wildcards         逐語的文字列一致
      --no-wildcards-match-slash   ワイルドカードが '/'
                             に一致しない
      --wildcards            ワイルドカードを使用 (標準で除外)
      --wildcards-match-slash   ワイルドカードが '/' に一致
                             (標準で除外)

 主操作モード:

  -A, --catenate, --concatenate   アーカイブに tar ファイルを追加
  -c, --create               新しいアーカイブを作成
  -d, --diff, --compare
                             アーカイブとファイルシステムとの違いを見付ける
      --delete               アーカイブから削除
                             (磁気テープ上ではダメ!)
  -r, --append               アーカイブの末尾にファイルを追加
  -t, --list                 アーカイブの内容を一覧表示
      --test-label
                             アーカイブのボリュームラベルをテストして終了
  -u, --update
                             アーカイブ内にあるファイルより新しいファイルのみを追加
  -x, --extract, --get       アーカイブからファイルを抽出

 操作オプションに対する付加機能:

      --check-device
                             インクリメンタルアーカイブ作成時にデバイス番号をチェックする
                             (標準)
  -g, --listed-incremental=FILE   新しい GNU
                             形式のインクリメンタルバックアップを処理
  -G, --incremental          古い GNU
                             形式のインクリメンタルバックアップを処理
      --hole-detection=TYPE  穴を検知する技術
      --ignore-failed-read
                             読み込めないファイルにおいて非ゼロで終了しません
      --level=NUMBER         作られた listed-incremental
                             アーカイブに対するダンプレベル
  -n, --seek                 アーカイブは検索可能
      --no-check-device
                             インクリメンタルアーカイブ作成時にデバイス番号をチェックしない
      --no-seek
                             アーカイブは検索可能ではありません
      --occurrence[=NUMBER]  アーカイブ中の各ファイルの
                             NUMBER番目の存在のみ処理.
                             このオプションはサブコマンド
                             --delete, --diff, --extract または --list
                             のうちの
                             1つと組み合わせて且つファイル一覧がコマンドラインか
                             -T
                             オプション経由のどちらかで指定された場合のみ有効.
                             NUMBER は標準で 1.
      --sparse-version=MAJOR[.MINOR]
                             まばら (sparse)
                             形式のバージョンを設定 (--sparse
                             の意味を含む)
  -S, --sparse
                             まばらに存在するファイルを効果的に処理

 制御を上書き:

  -k, --keep-old-files
                             取り出す際に既存のファイルを置き換えず,
                             エラーとして扱う
      --keep-directory-symlink
                             取り出す際にディレクトリへの既存シンボリックリンクを維持
      --keep-newer-files
                             アーカイブコピーより新しい既存ファイルを置き換えない
      --no-overwrite-dir
                             既存ディレクトリのメタデータを保存
      --one-top-level[=DIR]  loose
                             fileを取り出せないようにするためにサブディレクトリを作成
      --overwrite            取り出す際に既存ファイルを上書き
      --overwrite-dir
                             取り出す際に既存ディレクトリのメタデータを上書き
                             (標準)
      --recursive-unlink
                             ディレクトリを取り出す前に階層を空に
      --remove-files
                             ファイルをアーカイブに加えた後で削除
      --skip-old-files
                             取り出す際に既存のファイルを置き換えず,
                             そのままスキップする
  -U, --unlink-first
                             各々のファイルを取り出して上書きする前に削除
  -W, --verify               アーカイブを書き出した後に検証

 出力ストリームを選択

      --ignore-command-error 子プロセスの終了コードを無視
      --no-ignore-command-error
                             子プロセスの非ゼロ終了コードをエラーとして処理
  -O, --to-stdout
                             ファイルを取り出して標準出力に出力
      --to-command=COMMAND
                             ファイルを取り出して別のプログラムに出力

 ファイル属性の処理

      --atime-preserve[=METHOD]   最終アクセス時刻を,
                             読み込み後に復元する (METHOD='replace';
                             標準) か最初に設定しない
                             (METHOD='system')
                             かのどちらかの方法でダンプファイル上で維持
      --clamp-mtime          only set time when the file is more recent than
                             what was given with --mtime
      --delay-directory-restore
                             抽出が終了するまで抽出されたディレクトリの最終更新時刻と属性の設定を遅らせる
      --group=NAME           加えたファイルのグループを NAME
                             に変更
      --group-map=FILE       ファイル所有者 GID
                             と名前をマップするのに FILE を使用
      --mode=CHANGES         加えたファイルの (シンボリック)
                             モードを CHANGES に変更
      --mtime=DATE-OR-FILE   DATE-OR-FILE から追加ファイルの mtime
                             を設定
  -m, --touch                ファイルの更新時刻を取り出さない
      --no-delay-directory-restore
                             --delay-directory-restore
                             オプションの効果を取り消し
      --no-same-owner
                             あなた自身のファイルとして取り出す
                             (一般ユーザではデフォルト)
      --no-same-permissions
                             アーカイブから属性を抽出する際にユーザの
                             umask を適用 (一般ユーザでは標準)
      --numeric-owner
                             ユーザ名/グループ名として常に数字を使う
      --owner=NAME           加えたファイルの所有者を NAME
                             に変更
      --owner-map=FILE       ファイル所有者 UID
                             と名前をマップするのに FILE を使用
  -p, --preserve-permissions, --same-permissions
                             ファイル属性についての情報を抽出
                             (superuser では標準)
      --same-owner
                             アーカイブ内と同じ所有者のままでファイルを取り出してみる
                             (スーパーユーザではデフォルト)
  -s, --preserve-order, --same-order
                             メンバー引数はアーカイブ内のファイルと同じ順番で並んでいます
      --sort=順番          ディレクトリ並び替え順: なし
                             (標準), 名前またはiノード

 拡張ファイル属性の処理

      --acls                 POSIX ACL 対応を有効に
      --no-acls              POSIX ACL 対応を無効に
      --no-selinux           SELinux コンテクスト対応を無効に
      --no-xattrs            拡張属性対応を無効に
      --selinux              SELinux コンテクスト対応を有効に
      --xattrs               拡張属性対応を有効に
      --xattrs-exclude=MASK  xattr
                             キーに対する除外パターンを指定
      --xattrs-include=MASK  xattr
                             キーに対する包含パターンを指定

 デバイスの選択と切替:

  -f, --file=ARCHIVE         アーカイブファイルまたはデバイス
                             ARCHIVE を使用
      --force-local
                             アーカイブファイルはコロンを含んでいてもローカル
  -F, --info-script=NAME, --new-volume-script=NAME
                             各々のテープの最後でスクリプトを実行
                             (-M 必須)
  -L, --tape-length=NUMBER   NUMBER x 1024
                             バイトを書き出した後でテープを変更
  -M, --multi-volume
                             マルチボリュームのアーカイブを作成/一覧/抽出
      --rmt-command=COMMAND  指定された rmt COMMAND を rmt
                             の代わりに使用
      --rsh-command=COMMAND  rsh の代わりに COMMAND を使用
      --volno-file=FILE      FILE 中のボリューム番号を使用/更新

 デバイスブロッキング:

  -b, --blocking-factor=BLOCKS   レコードあたり BLOCKS x 512 バイト
  -B, --read-full-records    読み出したように再ブロック (4.2BSD
                             パイプ用)
  -i, --ignore-zeros         アーカイブ中のゼロブロック (つまり
                             EOF) を無視
      --record-size=NUMBER   レコードあたり NUMBER バイト. 512
                             の倍数

 アーカイブ形式の選択

  -H, --format=FORMAT        指定された形式のアーカイブを作成

 FORMAT は次のうちの 1つ:

    gnu                      GNU tar 1.13.x 形式
    oldgnu                   GNU tar 1.12 以前の形式
    pax                      POSIX 1003.1-2001 (pax) 形式
    posix                    pax と同じ
    ustar                    POSIX 1003.1-1988 (ustar) 形式
    v7                       古い V7 tar 形式

      --old-archive, --portability
                             --format=v7 と同じ
      --pax-option=keyword[[:]=value][,keyword[[:]=value]]...
                             pax キーワードを制御
      --posix                --format=posix と同じ
  -V, --label=TEXT           ボリューム名 TEXT
                             のアーカイブを作成. 一覧/抽出時に
                             TEXT
                             をボリューム名に対する抽出パターンに使用

 圧縮オプション:

  -a, --auto-compress
                             圧縮プログラムを決めるのにアーカイブ接尾辞を使用する
  -I, --use-compress-program=PROG
                             PROG 経由でフィルタ (-d
                             を受け付ける必要あり)
  -j, --bzip2                bzip2 経由でアーカイブをフィルタ
  -J, --xz                   xz 経由でアーカイブをフィルタ
      --lzip                 lzip 経由でアーカイブをフィルタ
      --lzma                 xz 経由でアーカイブをフィルタ
      --lzop                 xz 経由でアーカイブをフィルタ
      --no-auto-compress
                             圧縮プログラムを決めるのにアーカイブ接尾辞を使用しない
  -z, --gzip, --gunzip, --ungzip   gzip
                             経由でアーカイブをフィルタ
  -Z, --compress, --uncompress   compress
                             経由でアーカイブをフィルタ

 ローカルファイル選択:

      --backup[=CONTROL]     削除前にバージョン管理を CONTROL
                             にしてバックアップ
  -h, --dereference          シンボリックリンクをたどる;
                             それらが指すファイルをアーカイブしてダンプ
      --hard-dereference     ハードリンクをたどる;
                             それらが指すファイルをアーカイブしてダンプ
  -K, --starting-file=MEMBER-NAME
                             アーカイブの読み取り時にメンバー
                             MEMBER-NAME で開始
      --newer-mtime=DATE
                             データが変更された時だけ日付および時刻を比較
  -N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE
                             DATE-OR-FILE
                             よる新しいファイルのみを格納
      --one-file-system
                             アーカイブ作成時にローカルファイルシステムに限定
  -P, --absolute-names       ファイル名から先頭の '/'
                             を取り除かない
      --suffix=STRING        削除前にバックアップ, 通常の接尾辞
                             (環境変数 SIMPLE_BACKUP_SUFFIX
                             が未設定なら '~') を上書き

 ファイル名変換:

      --strip-components=NUMBER   抽出時にファイル名から先頭の
                             NUMBER 個のコンポネントを除去
      --transform=EXPRESSION, --xform=EXPRESSION
                             ファイル名の変換に sed の置換
                             EXPRESSION を使用

 情報:

      --checkpoint[=NUMBER]  NUMBER (標準 10)
                             番目の記録ごとに進捗メッセージを表示
      --checkpoint-action=ACTION   各検問で ACTION を実行
      --full-time
                             ファイルの時刻情報を完全形式で表示
      --index-file=FILE      冗長出力を FILE に送信
  -l, --check-links
                             全てのリンクがダンプされない場合メッセージを表示
      --no-quote-chars=STRING   STRING からの文字引用を無効に
      --quote-chars=STRING   更に STRING から文字を引用
      --quoting-style=STYLE  名前引用形式を設定. 有効な STYLE
                             値は下記参照.
  -R, --block-number
                             アーカイブ内のブロック数を各々メッセージ付きで表示
      --show-defaults        tar の既定値を表示
      --show-omitted-dirs    一覧や抽出時に,
                             検索基準に一致しないディレクトリを各々一覧表示
      --show-snapshot-field-ranges
                             スナップショットファイルの領域の正当な範囲を表示
      --show-transformed-names, --show-stored-names
                             変換後にファイル名またはアーカイブ名を表示
      --totals[=SIGNAL]
                             アーカイブの処理後に総バイト数を表示.
                             引数があれば - この SIGNAL
                             が発せられる時に総バイト数を表示.
                             許可された SIGNAL は: SIGHUP, SIGQUIT,
                             SIGINT, SIGUSR1 および SIGUSR2. SIG
                             接頭辞がない名前でも可
      --utc                  ファイルの更新時刻を UTC で表示
  -v, --verbose
                             処理されているファイルの一覧を冗長に表示
      --warning=KEYWORD      警戒管制
  -w, --interactive, --confirmation
                             全ての動作を確認

 互換オプション:

  -o                         作成時は --old-archive と同じ. 抽出時は
                             --no-same-owner と同じ

 その他オプション:

  -?, --help                 このヘルプ一覧を表示
      --restrict
                             潜在的に害になるオプションの使用を無効に
      --usage                短い使用法メッセージを表示
      --version              プログラムバージョンを表示

長いオプションに対する必須または任意の引数は対応する短いオプションに対しても必須または任意です.

--suffix や SIMPLE_BACKUP_SUFFIX で指定されない限り,
バックアップの接尾辞は
'~' です. また, バージョン管理は --backup や VERSION_CONTROL
に次のような
値を指定することで設定できます.

  none, off       バックアップを取らない
  t, numbered     バックアップに番号をふる
  nil, existing
番号がふられたバックアップがあれば番号をふり,
                  そうでなければ単にバックアップを取る
  never, simple   常に単純なバックアップを取る

--quoting-style オプションに対する有効な引数:

  literal
  shell
  shell-always
  c
  c-maybe
  escape
  locale
  clocale

cp

$ cp --help

使用法: cp [OPTION]... [-T] SOURCE DEST
または: cp [OPTION]... SOURCE... DIRECTORY
または: cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
  -a, --archive                -dR --preserve=all と同様
      --attributes-only        ファイルのデータをコピーせず、ファイルの属性のみコピーする
      --backup[=CONTROL]       コピー先ファイルが存在する時にバックアップを作成する
  -b                           --backup と同様だが引数を受け付けない
      --copy-contents          再帰時に特殊ファイルの内容をコピーする
  -d                           --no-dereference --preserve=links と同様
  -f, --force                  if an existing destination file cannot be
                                 opened, remove it and try again (this option
                                 is ignored when the -n option is also used)
  -i, --interactive            prompt before overwrite (overrides a previous -n
                                  option)
  -H                           follow command-line symbolic links in SOURCE
  -l, --link                   コピーの代わりにファイルのハードリンクを作成する
  -L, --dereference            SOURCE にあるシンボリックリンクを常にたどる
  -n, --no-clobber             存在するファイルを上書きしない (前に指定した
                                 -i オプションを上書きする)
  -P, --no-dereference         SOURCE にあるシンボリックリンクを決してたどらない
  -p                           --preserve=mode,ownership,timestamps と同様
      --preserve[=ATTR_LIST]   指定した属性を保護する (デフォルト: mode,ownership,
                                 timestamps)。追加可能な属性: context, links, 
                                 xattr, all
      --no-preserve=ATTR_LIST  指定した属性を保護しない
      --parents                DIRECTORY 配下で SOURCE ファイルのフルパス名を使用する
  -R, -r, --recursive          再帰的にディレクトリをコピーする
      --reflink[=WHEN]         clone/CoW コピーを制御する。下記を参照
      --remove-destination     コピー先にファイルが存在する場合、開く前に削除する
                                 (--force と対照的)
      --sparse=WHEN            スパースファイル作成を制御する。下記を参照
      --strip-trailing-slashes  各 SOURCE 引数から末尾のスラッシュを全て削除
                                 する
  -s, --symbolic-link          コピーの代わりにシンボリックリンクを作成する
  -S, --suffix=SUFFIX          通常のバックアップ接尾辞を上書きする
  -t, --target-directory=DIRECTORY  全ての SOURCE 引数を DIRECTORY にコピーする
  -T, --no-target-directory    DEST を通常ファイルとして扱う
  -u, --update                 SOURCE ファイルがコピー先ファイルより新しいか
                                 存在しない時だけコピーする
  -v, --verbose                実行していることを説明する
  -x, --one-file-system        このファイルシステムだけで実行する
  -Z                           set SELinux security context of destination
                                 file to default type
      --context[=CTX]          like -Z, or if CTX is specified then set the
                                 SELinux or SMACK security context to CTX
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

デフォルトでは、SOURCE スパースファイルは発見的手法で検出され、対応する
DEST ファイルはスパースファイルとして作成されます。これは --sparse=auto
が選択されたときの動作です。--sparse=always を指定した場合、SOURCE ファ
イルに値が 0 のバイトが十分な長さ含まれている場合には DEST がスパース
ファイルとして作成されます。スパースファイルの作成を禁止する場合は
--sparse=never を使用してください。

--reflink[=always] が指定された場合、軽量コピーが実行されデータブロック
が変更された場合にのみコピーされます。そうでない場合、コピーが失敗した
場合、または --reflink=auto が指定された場合、通常のコピーにフェイル
バックされます。

The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable.  Here are the values:

  none, off       バックアップを作成しない (--backup を付けた時でも)
  numbered, t     番号付きバックアップを作成する
  existing, nil   番号付きバックアップがあれば番号付き、
                      そうでなければ、simple で作成する
  simple, never   常に簡易バックアップを作成

特別な場合として、cp は -f と -b オプションが与えられ、SOURCE と DEST が
同一ファイルである時は、SOURCE のバックアップを作成します。

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
cp の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。
Full documentation at: <http://www.gnu.org/software/coreutils/cp>
or available locally via: info '(coreutils) cp invocation'

解説

--preserve[=ATTR_LIST] 指定した属性を保護する (デフォルト : mode, ownership, timestamps)。追加可能な属性: context, links, xattr, all。

preserve option
mode アクセス権(パーミッション)
ownership 所有者と所有グループ
timestamps 最終更新日時と最新アクセス日時
context SELinuxの「コンテキスト」と呼ばれる情報
links ディレクトリ内に存在するハードリンク
xattr ファイルシステムの拡張属性
all 上記すべて

rsync

$ rsync --help

rsync  version 3.1.2  protocol version 31

Usage: rsync [OPTION]... SRC [SRC]... DEST
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
  or   rsync [OPTION]... [USER@]HOST:SRC [DEST]
  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]
  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect
to an rsync daemon, and require SRC or DEST to start with a module name.

Options
 -v, --verbose               increase verbosity
     --info=FLAGS            fine-grained informational verbosity
     --debug=FLAGS           fine-grained debug verbosity
     --msgs2stderr           special output handling for debugging
 -q, --quiet                 suppress non-error messages
     --no-motd               suppress daemon-mode MOTD (see manpage caveat)
 -c, --checksum              skip based on checksum, not mod-time & size
 -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
     --no-OPTION             turn off an implied OPTION (e.g. --no-D)
 -r, --recursive             recurse into directories
 -R, --relative              use relative path names
     --no-implied-dirs       don't send implied dirs with --relative
 -b, --backup                make backups (see --suffix & --backup-dir)
     --backup-dir=DIR        make backups into hierarchy based in DIR
     --suffix=SUFFIX         set backup suffix (default ~ w/o --backup-dir)
 -u, --update                skip files that are newer on the receiver
     --inplace               update destination files in-place (SEE MAN PAGE)
     --append                append data onto shorter files
     --append-verify         like --append, but with old data in file checksum
 -d, --dirs                  transfer directories without recursing
 -l, --links                 copy symlinks as symlinks
 -L, --copy-links            transform symlink into referent file/dir
     --copy-unsafe-links     only "unsafe" symlinks are transformed
     --safe-links            ignore symlinks that point outside the source tree
     --munge-links           munge symlinks to make them safer (but unusable)
 -k, --copy-dirlinks         transform symlink to a dir into referent dir
 -K, --keep-dirlinks         treat symlinked dir on receiver as dir
 -H, --hard-links            preserve hard links
 -p, --perms                 preserve permissions
 -E, --executability         preserve the file's executability
     --chmod=CHMOD           affect file and/or directory permissions
 -A, --acls                  preserve ACLs (implies --perms)
 -X, --xattrs                preserve extended attributes
 -o, --owner                 preserve owner (super-user only)
 -g, --group                 preserve group
     --devices               preserve device files (super-user only)
     --copy-devices          copy device contents as regular file
     --specials              preserve special files
 -D                          same as --devices --specials
 -t, --times                 preserve modification times
 -O, --omit-dir-times        omit directories from --times
 -J, --omit-link-times       omit symlinks from --times
     --super                 receiver attempts super-user activities
     --fake-super            store/recover privileged attrs using xattrs
 -S, --sparse                handle sparse files efficiently
     --preallocate           allocate dest files before writing them
 -n, --dry-run               perform a trial run with no changes made
 -W, --whole-file            copy files whole (without delta-xfer algorithm)
 -x, --one-file-system       don't cross filesystem boundaries
 -B, --block-size=SIZE       force a fixed checksum block-size
 -e, --rsh=COMMAND           specify the remote shell to use
     --rsync-path=PROGRAM    specify the rsync to run on the remote machine
     --existing              skip creating new files on receiver
     --ignore-existing       skip updating files that already exist on receiver
     --remove-source-files   sender removes synchronized files (non-dirs)
     --del                   an alias for --delete-during
     --delete                delete extraneous files from destination dirs
     --delete-before         receiver deletes before transfer, not during
     --delete-during         receiver deletes during the transfer
     --delete-delay          find deletions during, delete after
     --delete-after          receiver deletes after transfer, not during
     --delete-excluded       also delete excluded files from destination dirs
     --ignore-missing-args   ignore missing source args without error
     --delete-missing-args   delete missing source args from destination
     --ignore-errors         delete even if there are I/O errors
     --force                 force deletion of directories even if not empty
     --max-delete=NUM        don't delete more than NUM files
     --max-size=SIZE         don't transfer any file larger than SIZE
     --min-size=SIZE         don't transfer any file smaller than SIZE
     --partial               keep partially transferred files
     --partial-dir=DIR       put a partially transferred file into DIR
     --delay-updates         put all updated files into place at transfer's end
 -m, --prune-empty-dirs      prune empty directory chains from the file-list
     --numeric-ids           don't map uid/gid values by user/group name
     --usermap=STRING        custom username mapping
     --groupmap=STRING       custom groupname mapping
     --chown=USER:GROUP      simple username/groupname mapping
     --timeout=SECONDS       set I/O timeout in seconds
     --contimeout=SECONDS    set daemon connection timeout in seconds
 -I, --ignore-times          don't skip files that match in size and mod-time
 -M, --remote-option=OPTION  send OPTION to the remote side only
     --size-only             skip files that match in size
     --modify-window=NUM     compare mod-times with reduced accuracy
 -T, --temp-dir=DIR          create temporary files in directory DIR
 -y, --fuzzy                 find similar file for basis if no dest file
     --compare-dest=DIR      also compare destination files relative to DIR
     --copy-dest=DIR         ... and include copies of unchanged files
     --link-dest=DIR         hardlink to files in DIR when unchanged
 -z, --compress              compress file data during the transfer
     --compress-level=NUM    explicitly set compression level
     --skip-compress=LIST    skip compressing files with a suffix in LIST
 -C, --cvs-exclude           auto-ignore files the same way CVS does
 -f, --filter=RULE           add a file-filtering RULE
 -F                          same as --filter='dir-merge /.rsync-filter'
                             repeated: --filter='- .rsync-filter'
     --exclude=PATTERN       exclude files matching PATTERN
     --exclude-from=FILE     read exclude patterns from FILE
     --include=PATTERN       don't exclude files matching PATTERN
     --include-from=FILE     read include patterns from FILE
     --files-from=FILE       read list of source-file names from FILE
 -0, --from0                 all *-from/filter files are delimited by 0s
 -s, --protect-args          no space-splitting; only wildcard special-chars
     --address=ADDRESS       bind address for outgoing socket to daemon
     --port=PORT             specify double-colon alternate port number
     --sockopts=OPTIONS      specify custom TCP options
     --blocking-io           use blocking I/O for the remote shell
     --stats                 give some file-transfer stats
 -8, --8-bit-output          leave high-bit chars unescaped in output
 -h, --human-readable        output numbers in a human-readable format
     --progress              show progress during transfer
 -P                          same as --partial --progress
 -i, --itemize-changes       output a change-summary for all updates
     --out-format=FORMAT     output updates using the specified FORMAT
     --log-file=FILE         log what we're doing to the specified FILE
     --log-file-format=FMT   log updates using the specified FMT
     --password-file=FILE    read daemon-access password from FILE
     --list-only             list the files instead of copying them
     --bwlimit=RATE          limit socket I/O bandwidth
     --stop-at=y-m-dTh:m     Stop rsync at year-month-dayThour:minute
     --time-limit=MINS       Stop rsync after MINS minutes have elapsed
     --outbuf=N|L|B          set output buffering to None, Line, or Block
     --write-batch=FILE      write a batched update to FILE
     --only-write-batch=FILE like --write-batch but w/o updating destination
     --read-batch=FILE       read a batched update from FILE
     --protocol=NUM          force an older protocol version to be used
     --iconv=CONVERT_SPEC    request charset conversion of filenames
     --checksum-seed=NUM     set block/file checksum seed (advanced)
     --noatime               do not alter atime when opening source files
 -4, --ipv4                  prefer IPv4
 -6, --ipv6                  prefer IPv6
     --version               print version number
(-h) --help                  show this help (-h is --help only if used alone)