web-dev-qa-db-ja.com

ディレクトリとその内容を新しいディレクトリ名の下の新しい場所にどのようにコピーしますか?

私はLinuxコマンドラインを初めて使用しますが、現時点ではcopyコマンドを理解しようとしています。

サブディレクトリと関連ファイルを含むディレクトリを新しい名前の新しいディレクトリにコピーできるかどうか教えてください。 directory_backup?

事前にすべての助けをありがとう

49
Edmuntu

-r(再帰的にコピー)を使用して、新しい名前を指定します

cp -r /path/to/directory /path/to/location/new-name

実際のパスに置き換えます。たとえば、stuffをホームディレクトリから既存ディレクトリbackupにコピーし、新しいディレクトリにstuff-backup(この場合ディレクトリはすでに存在します。stuffがコピーされることに注意してくださいinto it、上書きではありません)。

cp -r ~/stuff ~/backup/stuff-backup

~は、私の場合、ホームディレクトリ/home/$USERまたは/home/zannaのショートカットです。現在の作業ディレクトリがホームディレクトリである場合は省略できます。これはプロンプトから確認できます。

zanna@monster:~$
              ^--the ~ here is where I am - home!

-v verboseフラグを追加して、実行中の各コピーをcp報告することができます...

$ cp -vr stuff backup/stuff-backup
'stuff/thing1' -> 'backup/stuff-backup/thing1'
'stuff/thing2' -> 'backup/stuff-backup/thing2
...
65
Zanna

必要なコマンドは、単に「コピー」を表すcpです。

たとえば、次の構文のいずれかで使用できます。

cp SOURCEFILE TARGETFILE
cp SOURCEFILE TARGETDIRECTORY

最初のバリアントでは、ターゲットファイルの新しいファイル名を指定できますが、2番目のバリアントでは、ターゲットディレクトリに同じ名前のコピーが作成されます。もちろん、最初に大文字のプレースホルダーを有効なパスに置き換える必要があります。

ただし、cpは、デフォルトではディレクトリではなくファイルのみで動作します。すべてのコンテンツを含む完全なディレクトリを再帰的にコピーするには、-rオプションを追加する必要があります。

cp -r SOURCEDIRECTORY TARGETDIRECTORY

端末でman cpと入力すると、cpコマンドの詳細を確認できます。

9
Byte Commander

一般的に有用なcpコマンドの代替として、rsyncを使用できます。これには、元のディレクトリ構造のアクセス許可/タイムスタンプを複製するという追加の利点があります。

rsync -av dir/ newdir

-aアーカイブ-v詳細

ソースディレクトリの後ろのスラッシュに注意してください。

6
slowko

次のコマンドを使用して、ディレクトリをある場所から別のサブディレクトリにコピーできます。

cp -Rvp /home/edmuntu/data /home/edmuntu/mydata/

コマンドの説明:

  • -R =ディレクトリを再帰的にコピーします
  • v =何が行われているのかを説明する
  • p =許可と所有権をタイムスタンプで保持するのに役立ちます
4
Rakesh C

cpは、探している機能を実行するコマンドです。コピーの略で、まさにそれを行います。この状況で機能するコマンドは次のとおりです。

cp -R source/ destination/

これにより、source/フォルダーとそのすべてのサブディレクトリがdestination/にコピーされます。

destination/が存在しない場合、作成されます。

-Rフラグは再帰を表し、cpにすべてのサブディレクトリをコピーするよう指示します。

4
Owen Hines

最初にコピーするディレクトリに変更する方が簡単だと思います。この例では、誰もが/bootを呼び出したディレクトリに変更します。誰でも以下のコマンドをコピーしてターミナルに貼り付けることができます。

cd /boot
Sudo mkdir /boot_backup
Sudo cp -r . /boot_backup
du /boot_backup -h

752K    /boot_backup/extlinux/themes/debian-wheezy
756K    /boot_backup/extlinux/themes
832K    /boot_backup/extlinux
2.5M    /boot_backup/grub/i386-pc
20K     /boot_backup/grub/locale
2.3M    /boot_backup/grub/fonts
7.2M    /boot_backup/grub
565M    /boot_backup

cpコマンドの場合、現在のディレクトリは.として識別されます。これは、変更後の/bootディレクトリです。 -rオプションを使用すると、すべてのサブディレクトリを再帰的に含めることができます。

確実に機能するようにするには、duを実行して、この場合新しいディレクトリ/boot_backup内のすべてのサブディレクトリと合計ファイルサイズを一覧表示します。

このウォークスルーを終了した後、Sudo rm -r /boot_backupを使用して、新しいディレクトリとそのサブディレクトリを削除します。

4

通常、コピーを作成するときは、デフォルトの作成許可の新しいセットではなく、ファイル許可を同じに保ちます。つまり、cpに-aフラグを使用します。

cp -a file filenew
1
Robi