orig
という2つのディレクトリがあるとしましょうbackup
。ソースにはこのファイルが含まれていますfoo
。ファイルをバックアップディレクトリにコピーしたいが、foo
拡張子は.txt
。
答え1
cp /path/to/orig/foo /path/to/backup/foo.txt
cp
ソースファイルを最初の引数として使用し、ターゲットファイルを2番目の引数として使用します。許可されている宛先ディレクトリを簡単に指定するために使用できますが、宛先ファイルの名前を変更するためのフルパスを指定することもできます。
このcp
コマンドには、ソースファイルとターゲットの2つの呼び出し方法があります。目次、ソースファイル、ターゲットを含める文書。マニュアルのコマンドサマリセクションには、次のものが反映されています(man cp
)。
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
答え2
秘密は、ファイル拡張子がないことに気づくことです。ファイル拡張子は、CP / Mの無効なレプリカであるMS_DOSによって採用されたCP / Mの概念です。 Unixにはそれらがなく、名前の一部にすぎません。ただし、この問題を解決するのに役立つツールがあります。
basename
:デフォルト名(サフィックスなし)を取得するために使用できます。rename
:(Larry Wallバージョン)ファイルの名前を変更するのに適しています。
あなたが望むもののために。
( fileName=foo; cp -T "/path/to/orig/${fileName}" "/path/to/backup/${fileName}.txt" )
安全のためにこのオプションを追加しました-T
。省略できます(すべての人がcp
このオプションを持っているわけではありませんが、間違えた場合(2番目のパラメータにディレクトリを割り当てる)、このオプションがない場合、ファイルはこのディレクトリにコピーされます。