ファイル拡張子を別のディレクトリにコピーするにはどうすればよいですか?

ファイル拡張子を別のディレクトリにコピーするにはどうすればよいですか?

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番目のパラメータにディレクトリを割り当てる)、このオプションがない場合、ファイルはこのディレクトリにコピーされます。

関連情報