ターミナルで cp コマンドを使用するときに「..」のコピーを回避するにはどうすればよいでしょうか?

ターミナルで cp コマンドを使用するときに「..」のコピーを回避するにはどうすればよいでしょうか?

私はCentOS7を使っていて、コマンドを使うと

cp /root/test/.* /root/test1

また、..ソースの親ディレクトリにあるすべてのファイルとフォルダーもコピーされます。

コピー.や を回避するにはどうすればいいですか..?

答え1

質問ではコピーしたいかどうかは明確に述べられていないのみ隠しファイルの名前をコピーするか、すべてのファイルをコピーするかを指定します。同様に、サブディレクトリの内容をコピーするかどうかを指定します。ここでは、のみ隠し名前は現在のディレクトリです(コマンドでそれを実行したいと思われるため)。

再帰コピーを実行するために(またはGNU )-Rオプションも使用しない限り、コマンドは親ディレクトリ内のすべてのファイルをコピーしません。 このオプションがない場合、はディレクトリとについてエラーを出力しますが、 はそれらをコピーしません。cp-rcp-Rcp...

シェルではbashGLOBIGNOREシェル変数を、:シェルがファイル名グロブパターンを展開しないようにする名前の区切りリストに設定します。

GLOBIGNORE='.:..'

ファイルをコピーし、

cp /root/test/.* /root/test1

コピー操作のみを一時的に設定するにはGLOBIGNORE、サブシェルを使用します。

( GLOBIGNORE='.:..'; cp /root/test/.* /root/test1 )

答え2

.とを除くドットで始まるすべての名前をグロブするための標準的な慣用句は..です.??*。したがって、コマンドは次のようになります。

cp /root/test/.??* /root/test1

関連情報