2
find /user/stc/tmp -mmin -200 -ls | grep '.txt' | awk '{print $8, $9, $10, $11}' >> tempresult.txt

まず第一に、私は初心者です。先週(ホーム/ユーザー/一時で)変更された.txtファイルのみを見つけて、結果をファイルに保存しようとしています。いくつかの方法でそれを理解しましたが、パスなしでファイル名のみを保存するには助けが必要です。で印刷できます

awk '{print \$NF}'

しかし、上記のコマンドと組み合わせて試してみると、期待どおりに機能しません。

ヘルプ/提案/改善は大歓迎です。前もって感謝します。

4

2 に答える 2

4

そのパイプラインは、タスクに対して非常に複雑です。

findgrep/awkパイプラインをまったく使用せずに、必要なことを行うために必要なすべてのフィルタリングとフォーマットのサポートをサポートしています。(言うまでもなく、そもそもgrepへの配管はほとんど必要ありません。)awk

試す:

find /usr/stc/tmp -mmin -200 -a -name '*.txt' -printf '%P\n'
  • -afind指定子を結合する (ただし、これもデフォルトの操作です)
  • -name '*.txt'目的の名前形式に一致するファイルのみを選択するには
  • -printf出力の形式を選択するには
  • '%P\n'見つかったファイルの名前を、削除されたコマンドライン引数 (その後に改行が続く) とともに出力します。

実際にファイルだけを意味する場合(パス コンポーネントはまったくありません) 、 (thanks )%fの代わりに書式文字列が必要です。%PXorg

于 2015-02-17T14:07:29.047 に答える
1
find /user/stc/tmp -mmin -200 -printf "%f\n" > log_file

また

  find /user/stc/tmp -mtime -7 -printf "%f\n" > log_file

..

-mtime -7# 過去 7 日間

%fファイルが存在するサブディレクトリは無視されます。

ユーザーリクエストの編集

 find /user/stc/tmp -mtime -7 -printf "%Td-%Tm-%TY %Tr %TY %f\n" > log_file


%Td-%Tm-%TY        #modification time: day-month-year
%Tr                #modification date time
%TY                #modification date year

また、Linuxは作成日ではなく変更日を追跡することに注意してください...

于 2015-02-17T22:41:47.523 に答える