.txt ファイルをディレクトリにコピーします。

.txt ファイルをディレクトリにコピーします。

ディレクトリ内のファイルのコピーに問題があります。

.txtディレクトリには多くのファイルがあり、ディレクトリに基づいてファイルをコピーしたいと思います。たとえば、次のようになります。.jpeg.txt

direct/direct1
direct/direct2

direct1:
 file.txt
 file2.txt
 file.jpeg
 file2.jpeg

direct2:
 file3.txt
 file4.txt
 file3.jpeg
 file4.jpeg

.txtMy Copyコマンドには、各ディレクトリのファイルのみが必要です。

ベストアンサー1

.txtディレクトリ内のすべてのファイルをコピーするには、次のようにします。ワイルドカードパターン:

cp direct/direct1/*.txt target

これにより、.txtディレクトリ内のすべてのファイルがdirect/direct1そのディレクトリにコピーされますtarget(ディレクトリはすでに存在する必要があります)。

複数のパターンを渡すことで、複数のディレクトリからファイルをコピーできます。

cp direct/direct1/*.txt direct/direct2/*.txt target

.txtすべてのサブディレクトリにファイルをコピーするには、そのディレクトリdirectにワイルドカードを使用することもできます。

cp direct/*/*.txt target

特定のディレクトリからのみコピーしたい場合は、そのディレクトリにのみ一致するワイルドカードパターンを使用できます。たとえば、、、、およびdirect4つのサブディレクトリがあり、ファイルからのみファイルをコピーしたい場合は、次のようにします。foobarbazquxbarbaz

cp direct/ba?/*.txt target

これまでのすべての例は、それdirect自体またはファイルをコピーしません。からファイルをコピーするdirectには、そのファイルをリストに含める必要があります。.txtdirect

cp direct/*.txt direct/*/*.txt target

directすべてのサブディレクトリ、すべてのサブディレクトリなどからファイルを繰り返しコピーするには、ワイルドカードを使用できます**(シェルでサポートされている場合)。 zshではすぐに動作しますが、強く打つ、まずを使用して有効にする必要がありますshopt -s globstar

cp direct/**/*.txt target

すべてのファイルはtarget独自にコピーされるため、ディレクトリ構造は再現されません。ディレクトリ構造を再現するには、他のツールが必要です。同期地図時間) または公園

rsync -am --include='*.txt' --include='*/' --exclude='*' direct/ target/
cd direct && pax -rw -pe -s'/\.txt$/&/' -s'/.*//' . target/

おすすめ記事