ファイルとディレクトリのコピーは、コマンドラインで作業するときに実行する最も一般的なタスクの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 ユーティリティ。
ご不明な点がございましたら、下にコメントを残してください。