どのようにして cp でコピーして、隠しファイルと隠しディレクトリとその内容を含むようにするのですか?
cp -r
ディレクトリ内のファイルとディレクトリを 絶対的にすべてコピーさせるにはどうしたらいいですか?
上記を含むフラグを持つ一つのコマンドであること。
パターンマッチングに頼る必要は全くありません。どのフラグを使用する必要がありますか?
新しいフォルダ(または1つを作成しようとしている)を作成し、フォルダが
mkdir /home/<new_user>
cp -r /etc/skel/. /home/<new_user>
&001
これは、最初の行で作成された既存のフォルダに/etc/skel
から再帰的にすべてのファイル/フォルダをコピーします。
ファイルを指定しない:
cp -r /etc/skel /home/user
(/home/user
は既に存在していない必要があります。そうしないと/home/user/skel
を作成してしまうので注意)
これを行う正しい方法は、-T (--no-target-directory)
オプションを使用して、(末尾のスラッシュやアスタリスクなどを除いて)フォルダを再帰的にコピーすることです:
cp -rT /etc/skel /home/user
これは、/etc/skel
の内容を/home/user
(隠しファイルを含む)にコピーし、フォルダが存在しない場合には/home/user
を作成します。
bash
自体に良い解決があります、それは shell option
を持っています、あなたは cp
、mv
を等できます
shopt -s dotglob # for considering dot files (turn on dot files)
および
shopt -u dotglob # for don't considering dot files (turn off dot files)
上記の解決は bash
NOTE:
shopt # without argument show status of all shell options
-u # abbrivation of unset
-s # abbrivation of set
``` の標準です
rsync の使用:
rsync -rtv source_folder/ destination_folder/
rsync
は良いですが、別の選択:
cp -a src/ dst/
メインヘルプから:
-a, --archive
same as -dR --preserve=all
-d same as --no-dereference --preserve=links
-R, -r, --recursive
copy directories recursively
cp -r /etc/skel/{.,}* /home/user
式にはすべてのファイルとディレクトリが含まれています(ドットで始まるものもあります)。
rsync -aP ./from/dir/ /some/other/directory/
ssh のコピーもできます
rsync -aP ./from/dir/ username@remotehost:/some/other/directory/
いろいろなフラグが使えます。-a, –archive # archive (-rlptgoD)
-r, --recursive
-l, --links # copy symlinks as links
-p, --perms # preserve permissions
-t, --times # preserve times
-g, --group # preserve group
-o, --owner # preserve owner
-D # --devices --specials
--delete # Delete extra files
You may want to add the -P option to your command.
--partial # By default, rsync will delete any partially transferred file if the transfer is interrupted. In some circumstances it is more desirable to keep partially transferred files. Using the --partial option tells rsync to keep the partial file which should make a subsequent transfer of the rest of the file much faster.
-P # The -P option is equivalent to --partial --progress. Its purpose is to make it much easier to specify these two options for a long transfer that may be interrupted.
ソースディレクトリとターゲットディレクトリが同じ名前であれば、たとえターゲットディレクトリが存在していても、次のように入力するだけでOKです:
cp -R /etc/skel /home/
これで /etc/skel ディレクトリが /home/ にコピーされます。
この問題に対する私の解決策は、すべてのファイル(.
ファイルを含む)をターゲットディレクトリにコピーしなければならないときのパーミッションを保持するは次のとおりです。(既に存在する場合は上書き)
yes | cp -rvp /source/directory /destination/directory/
yes
は、コピー先のファイルを自動的に上書きするためのもので、再帰的に r
、冗長に v
、パーミッションを保持するためのものです。
ソースパスが p
で終わっていないことに注意してください。
コマンドラインのトリックがあることに注意してください (少なくとも sh, bash, ksh で動作します)。from_ ディレクトリの後にスラッシュを付けてください。これにより、from ディレクトリの内容を to ディレクトリに流すことができます (皮肉なことに、私がこのトリックを初めて知ったのは rsync を使っていたときでした)。
cp は常に隠しファイルをコピーするとは限らないことを見てきました。
少なくともK3b 2.0.3の時点では、ディレクトリがプロジェクトに追加されたときにポップアップする質問ボックスがあります。いいね!