私のディレクトリにはたくさんのファイルがあります。名前に「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 {} +