ファイルリストコマンドlsで複数のパターンを一致させますか? [コピー]

ファイルリストコマンドlsで複数のパターンを一致させますか? [コピー]

私のディレクトリにはたくさんのファイルがあります。名前に「abc」と「xyz」を含むファイルをリスト、コピー、または移動したいです。パターンマッチングにANDを使用する方法は?

一般コマンド:ls *abc* *xyz*ORにのみ使用されます。

答え1

この方法を使用してください。

ls *abc*xyz* *xyz*abc*

inmvまたはを使用すると、ワイルドカードを使用してファイルを見つけてコピー/移動したいファイル以上を持つことができるので、cpオプションを使用してターゲットディレクトリを指定するだけです。-t

cp -t /path/to/dest *abc*xyz* *xyz*abc*

または、find次のようなものを使用してください。

find \( -name '*abc*' -a -name '*xyz*' \)

これはfind -name '*abc*' -name '*xyz*'で文書化されたものと同じです。man find:

式1 式2
1行の2つの式は、暗黙の「and」で連結されていると見なされます。式2次の場合は評価されません。式1偽です。

式1-ㅏ式2
それは同じです式1 式2

式1-そして式2
それは同じです式1 式2しかし、POSIXと互換性がありません。

-exec ...上記のコマンドに加えて、見つかったファイルで目的の操作を実行できます。

find \( -name '*abc*' -a -name '*xyz*' \) -exec do-stuffs {} +

関連情報