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

検索コマンドの後にMvコマンドを統合する方法は?

AAAを含む名前のファイルを探しています 次のコマンドを使用してパス内で:

find path_A -name "*AAA*"

上記のコマンドで示された出力を前提として、これらのファイルを別のパス、たとえばpath_Bに移動したいと思います。 。これらのファイルを1つずつ移動する代わりに、findコマンドの直後にそれらのファイルを移動してコマンドを最適化できますか?

承認された回答:

GNU mvの場合:

find path_A -name '*AAA*' -exec mv -t path_B {} +

これは、findの-execを使用します {}を置き換えるオプション それぞれの検索結果を順番に使用して、指定したコマンドを実行します。 man findで説明されているように :

   -exec command ;
          Execute  command;  true  if 0 status is returned.  All following
          arguments to find are taken to be arguments to the command until
          an  argument  consisting of `;' is encountered.  

この場合、+を使用しています -execのバージョン 実行するmvが少なくなるようにします 可能な限りの操作:

   -exec command {} +
          This  variant  of the -exec action runs the specified command on
          the selected files, but the command line is built  by  appending
          each  selected file name at the end; the total number of invoca‐
          tions of the command will  be  much  less  than  the  number  of
          matched  files.   The command line is built in much the same way
          that xargs builds its command lines.  Only one instance of  `{}'
          is  allowed  within the command.  The command is executed in the
          starting directory.

Linux
  1. ディレクトリとサブディレクトリ内のファイル数を見つける方法

  2. LinuxでアクティブなSSH接続を見つける方法

  3. Grepコマンドを使用してファイル内のテキストを検索する方法

  1. findコマンドを使用して権限を監査する方法

  2. Linuxでfdコマンドを使用してファイルを検索する方法

  3. Linux の find コマンドを使用してファイルを検索する方法

  1. Solaris で検索コマンドの反転一致を実行する方法

  2. シェル - コマンドのディレクトリを見つける方法は?

  3. findコマンドで正規表現を使用するには?