展示用の印刷写真セットを準備する

LinuxBeginner
オンラインで実践に進む

はじめに

FRAME は地域の写真展を準備しています。印刷担当者には、合意された展示名で選定写真を渡す必要があります。2 つの受け入れフォルダーに IMG_0001.jpg がありますが、写っている場面は違います。全内容をコピーしたり、同じ名前を平坦化したりすると、誤ったコレクションになります。

原本を保持し、元と出力先の明確な対応を作り、既存の出力先を安全に扱い、別の受信ディレクトリからアーカイブを開きます。基本的な端末操作だけが前提です。コマンドとパス構文は使用前に説明し、スクリプトや写真の知識は必要ありません。

コマンドは Workstation、写真は Photo Desk で扱います。写真はすべて小さな CC0 教材で、ビューアーに出典があります。受け入れ名は架空で、著作者名ではありません。ファイル引き渡しの演習であり、解像度、カラープロファイル、専門的な印刷準備は対象外です。

同名の 2 枚の写真を保持する

このステップでは選定写真を識別し、同名の異なる 2 ファイルを別々の展示場所へコピーします。

Photo Desk で始めます。Sample を開きます。ひまわりは実画像の独立した例です。Sources を開き、各 IMG_0001.jpg をクリックして全体を見てから、ブラウザーの戻る操作で戻ります。Ada のフォルダーは橋、Ben は丸い舟です。カメラのファイル名だけでは写真を識別できません。

展示担当者は次の対応を承認しています。左のパスは source/、右は work/print-set/ からの相対パスです。

選定元 展示用の出力先 写真の内容
ada/IMG_0001.jpg Water/01-ada.jpg 橋
ben/IMG_0001.jpg Water/02-ben.jpg 丸い舟
ada/Quiet Water.jpg Details/03-water.jpg 滝

未選定の試し撮り、私的メモ、用意されたサンプルは納品物に含めません。元は読めますが、提供されたすべてのバイトを保持します。他のディレクトリへのリンクではなく、通常のコピーを作ります。

Workstation に切り替えます。pwd は現在のディレクトリを表示し、cd は変更します。初期位置は /home/labex/project/print-studio です。必要なら明示的なパスで戻ります。

cd /home/labex/project/print-studio
pwd
/home/labex/project/print-studio

ls はディレクトリの内容を一覧表示します。source/ada のスラッシュは階層を区切ります。これらの相対パスは現在地から解釈します。

ls source/ada
ls source/ben

両方に IMG_0001.jpg がありますが、別々のディレクトリの項目です。mkdir -p は不足する親ディレクトリを作り、既存ディレクトリも許容します。2 つの出力エリアを作ります。

mkdir -p work/print-set/Water work/print-set/Details

cp は元を移動せず出力先へコピーします。-i は既存の出力先を置き換える前に確認し、-v はコピー内容を表示します。-- はオプションの終わりです。空白入りファイル名を 1 引数に保つため、パスを引用符で囲みます。ここでは各出力先はディレクトリだけでなく、完全な新しいファイル名です。

cp -iv -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"
cp -iv -- "source/ben/IMG_0001.jpg" "work/print-set/Water/02-ben.jpg"

新規出力先では、出力が元と出力先を結び付けます。再試行で上書きを聞かれたら n を入力して Enter を押し、既存バイトを比較します。見覚えのある名前だけで「はい」と答えないでください。

cmp はファイルのバイトを比較します。無出力なら一致し、違えばメッセージとゼロ以外の終了状態を返します。両対応を確認します。

cmp -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"
cmp -- "source/ben/IMG_0001.jpg" "work/print-set/Water/02-ben.jpg"

Photo Desk の Staging に戻り、必要なら再読み込みします。両写真を開きます。2 つの出力名で橋と舟が別々に表示されます。コピー成功のメッセージだけでは、実画像と対応を確認したことにはなりません。

出力先の衝突を安全に解決する

このステップでは誤った上書きを拒否し、その証拠を理解して選定セットを完成させます。同じ Workstation 端末を使います。

出力名は印刷担当者への約束です。確認の意味を理解するため、Ben の舟を Ada の橋の上にコピーしようとします。次は意図的な衝突演習です。上書きの質問に n を入力し Enter を押します。

cp -iv -- "source/ben/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

橋は保持されるはずです。提案された舟を、保護した出力先と比較します。

cmp -- "source/ben/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

differ メッセージが出ます。ゼロ以外の終了は意図した結果で、この元はその出力先に属しません。次に、出力先が承認済みの元と一致することを確認します。

cmp -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

無出力なら、拒否によって橋を保持できました。衝突規則は、既存の出力先をまず拒否し、意図する元と比較して、一致する場合だけ保持することです。違う場合は置換前に承認された対応を確認します。繰り返されたカメラ名を許可と解釈しません。

3 つ目の対応を完成させます。Quiet Water.jpg の引用符は空白を保護します。

cp -iv -- "source/ada/Quiet Water.jpg" "work/print-set/Details/03-water.jpg"
cmp -- "source/ada/Quiet Water.jpg" "work/print-set/Details/03-water.jpg"

最初のコピーを通常どおり繰り返します。質問に n と答えて比較します。

cp -iv -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"
cmp -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

同一の既存コピーを保持し、余分な入れ子や別画像の上書きは発生しません。Photo Desk → Staging で 3 枚を開き、表示パスを表と比較します。滝は Details、橋と舟は Water です。ひまわりと私的メモは含みません。

衝突演習で誤って同意しても、元の橋は残っています。表を確認し、ステップ 1 の承認済み Ada から 01 へのコピーを再実行して、その誤りが確認された出力先だけに y と答え、再び cmp を実行します。復旧のために元ツリーを削除したり、作業領域全体を空にしたりしないでください。

独立して開けるコレクションを渡す

このステップでは選定ツリーだけをアーカイブにし、別の受信ディレクトリに展開して、実際に受け取った写真を開きます。

Workstation で始めます。tar はコレクションを 1 つのアーカイブに格納します。-czf の c は作成、z は gzip 圧縮、f は続くアーカイブファイル名を指定します。-C work は print-set を選択する前に tar の起点を変更します。したがって単一の print-set/ ルートとなり、work/、source/、ホームの絶対パスを含みません。再実行すると現在の作業ツリーからアーカイブを置き換えます。

tar -czf delivery.tar.gz -C work print-set

一覧には c の代わりに t を使います。展開せずに読み取ります。

tar -tzf delivery.tar.gz

print-set/、Water と Details のディレクトリ、選定された正確に 3 ファイルが表示されます。ディレクトリの順序は重要ではありません。source、試し撮り、メモがあれば誤ったディレクトリを収録したので、選定ツリーから作り直します。

mkdir recipient は新しい空の受信ディレクトリを作ります。-p がないので既存ディレクトリを拒否し、古い受信ファイルを新規の納品と誤認するのを防ぎます。

mkdir recipient

展開では c の代わりに x、配置先には -C recipient を使います。

tar -xzf delivery.tar.gz -C recipient

受け取り側には元パスに依存しない専用の recipient/print-set ができました。受信した各対応を比較します。

cmp -- "source/ada/IMG_0001.jpg" "recipient/print-set/Water/01-ada.jpg"
cmp -- "source/ben/IMG_0001.jpg" "recipient/print-set/Water/02-ben.jpg"
cmp -- "source/ada/Quiet Water.jpg" "recipient/print-set/Details/03-water.jpg"

3 比較はすべて無出力です。Photo Desk → Recipient を再読み込みし、各写真を開いて戻る操作で戻ります。合意名の橋、舟、滝を確認します。このページは受信コピーだけを読みます。Download delivery archive で生成代用品でない実アーカイブを入手します。Sources と Sample が引き続き通常に開くことも確認します。

再試行で新しい受信を試すには、以前の結果を mv で保管します。コピーではなく移動・改名です。次は recipient が存在し recipient-previous が存在しない場合だけ使い、以降は新しい未使用のバックアップ名を選びます。

mv -- recipient recipient-previous

続けて mkdir recipient と展開コマンドを繰り返します。元ツリーには展開しません。作業中の対応が誤っていたら、衝突規則に従って該当の出力先だけを修正し、アーカイブを作り直して新しい受信ディレクトリを使います。原本があるから復旧できます。

まとめ

元パスと画像で写真を識別し、選定原本を展示名へ対応付け、誤った上書きを拒否して cmp でバイトを比較しました。選定ツリーだけを納品し、独立した受信コピーを開きました。合意された納品配置が元ディレクトリ構造と異なる場合にも同じ方法を使えます。