プロンプト、ループコマンド

プロンプト、ループコマンド

Unixコマンドを実行してファイルリストを繰り返す一般的な方法はありますか?たとえば、あるディレクトリ内のすべてのファイル(ディレクトリを除く)を別のディレクトリに移動し、各ファイルの前にy / nプロンプトを表示するとします。明らかにこれはスクリプトを介して実行できますが、mvだけでなくファイルに対する同様の操作(rm、cat、wc、grepなど)にも使用できるコマンド方法はありますか?

ベストアンサー1

はい、

find /path/to/source/dir -type f -maxdepth 1 -ok mv {} /path/to/target/dir \;

ここのコマンドは、findすべての一般ファイルを検索し、/path/to/source/dirユーザーに与えられたアクションを実行するように求めるメッセージを表示します。この場合、ファイルをに移動します/path/to/target/dir。ユーザーがy(およびenter)を押すと、操作が実行されます。

{}は順番に見つかった各ファイルの名前に置き換えられ、各ファイルに対して実行されたコマンドは\;

-okに置き換えると、-execユーザーにメッセージが表示されず、次のメッセージが表示されます。みんな文書。

-maxdepth 1ファイル検索を最上位ディレクトリ(/path/to/source/dir)に制限します。これがなければ、find指定されたパスの下のすべてのサブディレクトリに再帰されます。

-type f検索を通常のファイルに限定します(ディレクトリ、ソケット、デバイスファイルなどは検索しません)。

おすすめ記事