私はCentOS7を使っていて、コマンドを使うと
cp /root/test/.* /root/test1
また、..
ソースの親ディレクトリにあるすべてのファイルとフォルダーもコピーされます。
コピー.
や を回避するにはどうすればいいですか..
?
答え1
質問ではコピーしたいかどうかは明確に述べられていないのみ隠しファイルの名前をコピーするか、すべてのファイルをコピーするかを指定します。同様に、サブディレクトリの内容をコピーするかどうかを指定します。ここでは、のみ隠し名前は現在のディレクトリです(コマンドでそれを実行したいと思われるため)。
再帰コピーを実行するために(またはGNU )-R
オプションも使用しない限り、コマンドは親ディレクトリ内のすべてのファイルをコピーしません。 このオプションがない場合、はディレクトリとについてエラーを出力しますが、 はそれらをコピーしません。cp
-r
cp
-R
cp
.
..
シェルではbash
、GLOBIGNORE
シェル変数を、:
シェルがファイル名グロブパターンを展開しないようにする名前の区切りリストに設定します。
GLOBIGNORE='.:..'
ファイルをコピーし、
cp /root/test/.* /root/test1
コピー操作のみを一時的に設定するにはGLOBIGNORE
、サブシェルを使用します。
( GLOBIGNORE='.:..'; cp /root/test/.* /root/test1 )
答え2
.
とを除くドットで始まるすべての名前をグロブするための標準的な慣用句は..
です.??*
。したがって、コマンドは次のようになります。
cp /root/test/.??* /root/test1