ファイルとディレクトリのコピーは、コマンドラインで作業するときに実行する最も一般的なタスクの1つです。 cp
を使用して、Linuxでファイルをコピーするためのコマンドがいくつかあります。 およびrsync
最も広く使用されているツールです。
cp
を使用するのが一般的な方法です ファイルとrsync
をコピーするコマンド ディレクトリをコピーします。
ファイルとディレクトリをコピーできるようにするには、少なくともソースファイルに対する読み取り権限と、宛先ディレクトリに対する書き込み権限が必要です。
cp
を使用してファイルをコピーする コマンド#
LinuxおよびUnixオペレーティングシステムでは、cp
コマンドはファイルとディレクトリのコピーに使用されます。
最も単純な使用例は、現在の作業ディレクトリにファイルをコピーすることです。たとえば、file.txt
という名前のファイルをコピーするには file_backup.txt
という名前のファイルに 現在のディレクトリで、次のコマンドを実行します。
cp file.txt file_backup.txt
宛先ファイルが存在する場合は、上書きされます。ファイルを上書きする前に確認プロンプトを表示するには、-i
を使用します オプション。
cp -i file.txt file_backup.txt
デフォルトでは、cp
を使用する場合 ファイルをコピーするコマンドの場合、新しいファイルはコマンドを実行するユーザーが所有します。 -p
を使用します ファイルモード、所有権、およびタイムスタンプを保持するオプション:
cp -p file.txt file_backup.txt
便利なもう1つのオプションは、-v
です。 。このオプションを使用すると、コマンドは実行中の内容を出力します。
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
ファイルをディレクトリにコピーします#
ファイルをディレクトリにコピーするには、ディレクトリへの絶対パスまたは相対パスを指定します。宛先ディレクトリを省略すると、ファイルは現在のディレクトリにコピーされます。
次の例では、ファイルfile.txt
をコピーしています。 /backup
へ ディレクトリ:
cp file.txt /backup
宛先としてディレクトリ名のみを指定する場合、コピーされたファイルは元のファイルと同じ名前になります。
別の名前でファイルをコピーする場合は、目的のファイル名を指定する必要があります。
cp file.txt /backup/new_file.txt
上記のコマンドは、ファイルをnew_file.txt
として指定されたディレクトリにコピーします。 。
複数のファイルをコピーする#
複数のファイルとディレクトリを一度にコピーするには、ソースファイルとディレクトリの名前を指定し、最後の引数として宛先ディレクトリを指定します。
cp file.txt dir file1.txt file2.txt dir1
複数のファイルをコピーする場合、宛先はディレクトリである必要があります。
cp
コマンドを使用すると、パターンマッチングを使用することもできます。たとえば、すべての.png
をコピーするには 現在のディレクトリから/backup
へのファイル ディレクトリの場合、次を使用します:
cp *.png /backup
cp
を使用したディレクトリのコピー コマンド#
すべてのファイルとサブディレクトリを含むディレクトリをコピーするには、-R
を使用します または-r
オプション。次の例では、ディレクトリPictures
をコピーしています。 Pictures_backup
へ :
cp -R Pictures Pictures_backup
上記のコマンドは、宛先ディレクトリを作成し、すべてのファイルとサブディレクトリをソースから宛先ディレクトリに再帰的にコピーします。
宛先ディレクトリがすでに存在する場合は、ソースディレクトリ自体とそのコンテンツが宛先ディレクトリにコピーされます。ファイルとサブディレクトリのみをコピーし、ターゲットディレクトリはコピーしない場合は、-T
を使用します。 オプション:
cp -RT Pictures Pictures_backup
ファイルのコピー時に使用されるオプションは、ディレクトリのコピー時にも使用できます。主な違いは、ディレクトリをコピーするときは、-R
を使用する必要があることです。 オプション。
rsync
を使用してファイルとディレクトリをコピーする コマンド#
rsync
は、2つの場所間でファイルとディレクトリを同期する高速で用途の広いコマンドラインユーティリティです。ファイルをローカルおよびリモートの場所にコピーするために使用できます。
rsync
その動作のあらゆる側面を制御する多くのオプションが含まれています
最も便利なオプションは-a
です ディレクトリを再帰的にコピーし、特別なデバイスとブロックデバイスを転送し、シンボリックリンク、変更時間、グループ、所有権、およびアクセス許可を保持します。
1つのファイルをある場所から別の場所にコピーするには、次のコマンドを実行します。
rsync -a file.txt file_backup.txt
宛先ファイルが存在する場合は、rsync
上書きします。
同じコマンドを使用してディレクトリをコピーできます:
rsync -a /var/www/public_html/ /var/www/public_html_backup/
rsync
末尾にスラッシュ/
で終わるソースディレクトリを脅かす 別の方法で。ソースディレクトリに末尾のスラッシュを追加すると、コマンドはソースディレクトリの内容のみを宛先ディレクトリにコピーします。末尾のスラッシュを省略した場合、rsync
ソースディレクトリを宛先ディレクトリ内にコピーします。最も安全なオプションは、常に末尾のスラッシュ/
を含めることです。 宛先と送信元の両方で。
rsync
の詳細については 次の記事を確認してください:
- ローカルおよびリモートのデータ転送と同期にRsyncを使用する方法
- Rsyncでファイルとディレクトリを除外する方法
結論#
cp
を使用して、LinuxおよびUnixベースのシステムでファイルとディレクトリをコピーする方法を説明しました。 およびrsync
ユーティリティ。
ご不明な点がございましたら、下にコメントを残してください。