- 締切済み
ターミナルコマンドの意味
下のコマンドは何をするものなのでしょうか。 意味を教えてください。 また初心者向けの構文から解説した分かり易いターミナルコマンドの解説サイトがあればお願いします。 find / \! -name -aaa.txt -bbb.txt -name "*.txt" -exec rm {} \; 宜しくお願いいたいます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
どの環境でのコマンドだか、まずはハッキリさせてください。 unix系のOSでのシェルでの実行と仮定します。 http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html find : コマンド名 / : マニュアルのpath にあたる部分。ここから順に探す。/で始まるのはルートディレクトリからの絶対パス。/だけならルートディレクトリ。 \!以降 : マニュアルのexpressionにあたる部分 \! :次の式の真偽を反転する。シュルでは普通!は特別な意味を持つので、\でその意味を無効化する -name -aaa.txt: "-aaa.txt"というファイルである→前の!で否定されて「"-aaa.txt"というファイルではない」という意味になる -bbb.txt: 多分、間違い -name "*.txt": -name にはワイルドカードが使える。シェルで展開しないように""で括る -exec: 条件が成立ったファイルやディレクトリに対して、命令を実行する。 rm: ファイルの削除 {}: findで見つかったファイル名に置き換わる。{も}もシェルで特別な意味を持つので普通は\{\}とか'{}'とか書く。 \; :-execで実行するコマンドの終りの印。;も特別な意味を持つので以下略 以上から 『-aaa.txt,-bbb.txt以外の~.txtというファイルを全て削除する...と書こうとして間違えている』 です。 ちなみに、通常は書き込み権限のある自分のファイルだけが消えますが、root権限で実行したらとても困ったことになります。 これが、Windowsのコマンドプロンプトのfindなら、上の説明はまったく当てはまりません。 http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/find.shtml