-2

私はそのようなコマンドの説明のためにグーグル全体を探していました

find /tmp -name core -type f -print | xargs /bin/rm -f

ネット自体からコマンドを取得し、そこにも説明が記載されていました。これで、このコマンドを使用して、「tmp」という名前のディレクトリで「core」という名前のファイルを検索し、ファイルを削除できることがわかりました。私はこれを使用して確認しましたが、完全に機能しています。

私の問題は、-type fやxargsが何をするのかなど、このコマンドで使用される用語を理解できなかったことです。また、私たちの必要に応じてそのようなコマンドを生成する方法(適切に理解されない限り明らかにできませんでした)、そして最大の問題はこれに関する助けを得るためにグーグルで何を書くかです...私はこれらをどのトピックの下で期待できるかを意味します。

助けてください

よろしく。

4

1 に答える 1

0

これはUNIXコマンドの文字列です。

 find           // name of command (in this case, "find")

 arguments to 'find':
    /tmp        // where to look
    -name core  // name to look for, "core" (optional argument)
    -type f     // files only (not, eg, directories or files contents) 
                // (optional argument)
    -print      // output the list to standard output (STDOUT)

|               // name of command (otherwise known as
                // 'pipe') this is a little program that
                // takes the output from a previous process
                // (in this case, the output from 'find')
                // and pass it to another process as input  

 xargs          // name of command ('xargs') the program
                // that will accept the output from 'print'
                // as input (directed by 'pipe'). It provides
                // a robust way to process indefinitely
                // long lists by breaking them into smaller
                // lists and passing each sublist through
                // to its command argument

 /bin/rm        // name of command for xargs to execute 
                // on its input list ('rm' = remove)
      -f        // argument to rm, only remove files, not directories.

これがUNIXの仕組みであり、単一のタスクに専念するあいまいな2文字の名前を持つ小さな単一目的のプログラムで構成されています。これらをつなぎ合わせて、より複雑なタスクを実行します。

1つのコマンドが何をするかを知る正しい方法は、問題のコマンド名を引数として「man」コマンドを使用することです。

man find
man xargs
man rm

各入力オプションと出力の可能性を説明する詳細情報のページが表示されます。「xargs」のような名前もグーグルで検索するのは簡単ですが、当然のことながら「find」はそうではありません(「unixfind」を試してみてください)。それらの多くはウィキペディアのページを持っています...

おそらくあなたはUNIXへのガイドにまともなものを手に入れるべきです...

于 2013-01-10T00:08:00.207 に答える