ターミナルを使用して、フォルダの内容を別のディレクトリの別のフォルダにコピーするにはどうすればよいですか?


740

ターミナルを使用して、フォルダの内容を別のディレクトリの別のフォルダにコピーしようとしています。

誰かがこれを達成するために必要なコマンドライン構文の例を提供できますか?

回答:


1116

次のコマンドを使用して、フォルダーのコンテンツ/sourceを別の既存のフォルダーにコピーできます。/dest

cp -a /source/. /dest/

この-aオプションは改善された再帰オプションで、すべてのファイル属性を保持し、シンボリックリンクも保持します。

.ソースパスの最後には、特定されcp、隠されたものを含め、すべてのファイルとフォルダをコピーすることができます構文。


@enzotibこのコマンドを使用して、「Downloads / textext」の内容を「〜/ .config / inkscape / extensions /」にコピーしようとしています。コマンドを使用して、「cp -a / Downloads / textext /。/~/.config/inkscape/extensions/」と入力します。しかし、これは機能しません
ファンジー14

@Funziesは:おそらくあなたのコマンドは次のようになります。cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/
enzotib

-pファイルのアクセス許可とタイムスタンプを保持するためのフラグを追加します。cp -ap /var/www/original.com/images/. /var/www/new.com/images/
ディランバラード14

3
@DylanValade:-aすでに暗示されている--preserve=all、それはより大きい-p = --preserve=mode,ownership,timestamps
エンゾチブ14

1
@BennyNeugebauer:(scp経由でssh)ネットワークを介してコピーするために使用され、宛先ファイルシステム上のファイルではなく、通信チャネルのみを暗号化します。
-enzotib

129

代替はrsyncです

rsync -r source/ destination

rsyncの利点は次のとおりです。

  1. 最初の同期の後、変更されたファイルのみがコピーされます。

  2. ネットワーク経由で使用できます。$ HOMEのファイル、特に構成ファイルに便利です。


5
アスタリスクは必要ないと思います。rsync -r source/ destination十分でしょうか?
ジョシュア

1
これはより適切です: 'rsync -rtvp source / * destination'
shridutt kothari

-r隠しファイル/フォルダのない作品
ナム・G VU

1
bashは非隠しファイルにのみ展開するため、隠しファイルはコピーされません。@Joschuaによるソリューションはより安全です。
ザウアーバーガー

*なしで末尾の/を使用すると、rsyncは隠しファイルを含むディレクトリ全体をコピーします。そのためrync source/ dest、rsyncコマンドをカスタマイズして必要に応じて機能させる必要があることは明らかです。
パンサー

78

あなたが呼ばれるフォルダ考えてみましょうfolder1のあなたにを~内部で、folder1のことと呼ばれる1つのファイルであるファイル1と2と呼ばれるフォルダSUB1SUB2その内の他のファイルとフォルダを持つ各。

すべての内容をコピーするには~/folder1~/new_folder1あなたが使用します

cp -r ~/folder1/. ~/new_folder1

new_folder1からのすべてのファイルとフォルダが含まれますfolder1

cpターミナルを使用してコピーするコマンドで、-r再帰的に(~/folder1つまり、現在のディレクトリ+現在のディレクトリ内の追加のディレクトリ)が起点フォルダで~/new_folder1あり、起点内のファイル/フォルダの宛先フォルダです。


5
隠しファイルをキャッチしません
Portablejim

1
ありがとうブルーノ!少し変更する必要がありましたが(〜記号を削除して)、構文を理解するのに役立ちました。おそらく、宛先フォルダが/ optにあり、別のファイルシステムに存在しているためです。そして、Portablejimが隠しファイルのことを覚えてくれてありがとう!
pandisvezia

4
後続の期間は重要です。これがないと、~/new_folder1/folder1コンテンツをコピーする代わりに新しいサブディレクトリを作成する場合があります。
ウィスバッキー

1
なぜいけないcp -r ~/folder1/* ~/new_folder1
Alex78191

@ Alex78191[root@ home]# mkdir food [root@ home]# cd food/ [root@ food]# mkdir .fruit [root@ food]# mkdir veggies [root@ food]# touch veggies/carrots [root@ food]# touch .fruit/apple [root@ food]# ls * carrots [root@ food]#
ブルーノペレイラ

14

フォルダーのコピーの詳細については、http://www.cyberciti.biz/faq/copy-folder-linux-command-line/を確認してください。お役に立てれば。

cp Command

cpファイルとディレクトリをコピーするためのLinuxコマンドです。構文は次のとおりです。

cp source destination
cp dir1 dir2
cp -option  source destination
cp -option1 -option2  source destination

この例では、/home/vivek/lettersフォルダーとそのすべてのファイルを/usb/backupディレクトリにコピーします。

cp -avr /home/vivek/letters /usb/backup

どこ、

-a :ディレクトリ、ファイルモード、所有権、タイムスタンプなどの指定された属性を保持し、可能であれば追加の属性:コンテキスト、リンク、xattr、すべて。

-v :何が行われているかを説明します。

-r:ディレクトリを再帰的にコピーします。例

/ tmp / confというフォルダーを/ tmp / backupにコピーします。

$ cp -avr /tmp/conf/ /tmp/backup

3
これは質問が尋ねるものではありません。
AStopher

(-rを-aと共に使用することは冗長です。gnucpで-aは "-dr --preserve = all"と同じです)
cristoper

1
cp:-Rおよび-rオプションは一緒に指定できません。
IgorGanapolsky

4

簡単な例。

コピーしたディレクトリdir_1とその内容(_ファイル_)をディレクトリにdir_2

cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_

dir_1内容(_files_)のみをディレクトリdir_2にコピーします。

cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_*

_files_ ディレクトリにある実際のファイルのプレースホルダーです。


2

2つのフォルダーがある場合:(書き込み許可付き)

drwxr-xr-x 4 vimal vimal  4096 Sep  9 12:17 .
drwxr-xr-x 3 root  root   4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal  4096 Sep  9 12:15 DATA
drwxrwxrwx 7 vimal vimal  4096 Sep  9 12:15 PORTAL

あなたが別のフォルダのすべてのコンテンツをコピーするPORTALというフォルダ内にいる場合、同じレベルでDATAと言うと、

vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .

2つの点に注意する必要があります。最後のドットは、現在のフォルダーにコピーすることを示します

そして

/ DATA /に続く1つ。DATAフォルダー自体ではなく、DATAフォルダー内のすべてのCONTENTSがコピーされると述べています。

この末尾の「。」を削除すると / DATA /から

その後、PORTAL内にDATAフォルダー全体がコピーされます(コピー元)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.