GNU/Linux >> Linux の 問題 >  >> Linux

ドットで始まる名前のファイルをコピーするにはどうすればよいですか?

その理由は bash にあるからです 、 * ドット (.) で始まるファイルは含まれません ).

実行できます

cp A/.* B

. をコピーしなかったことを警告します または .. 、または任意のサブディレクトリですが、これで問題ありません。

または、ドット ファイルと通常のファイルを一緒にコピーする場合は、

cp A/.* A/* B

実行することもできます

shopt -s dotglob
cp A/* B

bash で動作します 、しかし sh ではありません .

また、サブディレクトリもコピーされても構わない場合は、これが最も簡単です:

cp -R A/ B

ヒント:ワイルドカードが期待どおりに機能しない場合は、echo で実行してみてください。たとえば、

$ echo A/*
A/file1 A/file2

$ echo A/.*
A/. A/.. A/.hidden1 A/.hidden2

$ echo A/.* A/*
A/. A/.. A/.hidden1 A/.hidden2 A/file1 A/file2

$ shopt -s dotglob
$ echo A/*
A/file1 A/file2 A/.hidden1 A/.hidden2

bash の場合、dotglob を設定できます コピーする前に

shopt -s dotglob
cp A/* /destination

またはプログラミング言語

$ ruby -rfileutils -e  'Dir[".*"].each {|x| FileUtils.copy(x,"/destination") if File.file?x}'

dotglob を設定したくない場合は、

cp A/.* /destination 2>/dev/null

あなたが探しているのは、次のようなものです:

cp A/.??* B/

これはすべてのドットファイルに一致しますが、「.」には一致しません。また ".."。再帰的に作業していない限り、上記のソリューションのほとんどは問題ありません。しかし、次のようなことをしたいとすぐに:

cp -R A/.??* B/

「..」を省略しないと、非ドットファイルを含め、親ディレクトリからすべてをコピーします。


Linux
  1. Linuxで特定のサイズのファイルを作成するには?

  2. OpenSSL を含む .c ファイルをコンパイルするには?

  3. ddを使用してFFでファイルをパディングする方法は?

  1. ファイル拡張子でファイルを再帰的にコピーする方法は??

  2. dd を使用して ISO イメージを USB にコピーする方法

  3. 変な名前のファイルを削除するには?

  1. LinuxでCでファイルを書く方法は?

  2. Linuxで非表示の(ドットで始まる)ファイルとサブディレクトリをコピーする方法は?

  3. ETAを使用したLinuxファイルのコピー?