パターンを見つけて動く

パターンを見つけて動く

パターンを見つけて別の場所に移動する方法を知っている人がいないかと思っています。

たとえば、次のような名前のファイルがたくさんあります。

odbc.ini_20110630
odbc.ini_20110639
odbc.ini_20110643
etc...

ちょうどのパターンを検索してodbc.ini、すべてを別のフォルダに移動したいです。

一度に 2 つのコマンドを実行する方法 (パイプ) にはあまり詳しくありません。

答え1

使用できます

find . -name "odbc.ini*" -exec mv {} destination \;

これは、ファイルが現在のディレクトリから始まるディレクトリ階層内にあることを前提としています.

答え2

ファイルがすべて単一のディレクトリにあり、再帰が必要ない場合:

shopt -s nullglob
mv odbc.ini* /new/directory/

再帰が必要な場合:

find "${dir:-.}" -type f -name 'odbc.ini*' -exec mv {} /new/directory \;

別のアプローチとしては、次の方法がありますextglobが、これは読者の課題として残しておきます =]

答え3

すべてのファイルが同じディレクトリにある場合:

mv /path/to/source/odbc.ini* /path/to/destination

サブディレクトリ内のファイルも移動する場合:

shopt -s globstar      # put this line in your ~/.bashrc
mv /path/to/source/**/obdc.ini* /path/to/destination

関連情報