• 線上工具
  • - 計算器
    • 字元計數
  • - 下載
    • TikTok 下載
    • 抖音下載
  • - 網路工具
    • BASE64
    • Base64 轉圖片
    • 圖片轉 Base64
    • URL 編碼
    • JavaScript
    • 時間戳
    • Unicode 轉換器
    • JSON 格式化
    • 修改副檔名
    • 製作列表
    • CSS 優化器
  • - 加密工具
    • MD5 加密
    • 隨機生成器
  • - 圖像工具
    • 圖像壓縮
    • QR 碼生成器
    • QR 碼識別器
    • 壁紙預覽
    • 圖片 EXIF
  • - 資訊表
    • 血型遺傳
    • 服裝尺寸
    • app.tool_clock
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
Linux findコマンドにおける-execパラメータの役割の紹介
2021-12-12

Linuxコマンドに異なるパラメータを加えると効果も異なることはよく知られていますが、Linux fingコマンドの-execパラメータについて詳しく説明します。

exec解釈:

-execパラメータの後にcommandコマンドが付いています。その終了は次のとおりです。終了フラグのため、このコマンドの後ろのセミコロンは不可欠であり、各システムでセミコロンが異なる意味を持つことを考慮して、前にスラッシュを付けます。

{}カッコは、前のfindで検索されたファイル名を表します。

findを使うときは、欲しい操作を1つのファイルに書けば、execでfind検索に合わせることができ、便利です。一部のオペレーティングシステムでは、-execオプションのみがl sまたはls-lなどのコマンドを実行できます。ほとんどのユーザーは、古いファイルを検索して削除するためにこのオプションを使用します。本当にrmコマンドを実行してファイルを削除する前に、lsコマンドで見て、削除するファイルであることを確認することをお勧めします。execオプションの後には、実行するコマンドまたはスクリプトが続き、ペア{}、スペース、セミコロンが続きます。execオプションを使用するにはprintオプションを同時に使用する必要があります。findコマンドを検証すると、現在のパスから相対的なパスとファイル名のみが出力されます。

インスタンス1:ls-lコマンドfindコマンドの-execオプションに配置

コマンド:

  find 。 -type f -exec ls -l {} \;

出力:

コードは次のとおりです。

  [root@localhost test]# find 。 -type f -exec ls -l {} \;

  -rw-r--r-- 1 root root 127 10-28 16:51 。/log2014.log

  -rw-r--r-- 1 root root 0 10-28 14:47 。/test4/log3-2.log

  -rw-r--r-- 1 root root 0 10-28 14:47 。/test4/log3-3.log

  -rw-r--r-- 1 root root 0 10-28 14:47 。/test4/log3-1.log

  -rw-r--r-- 1 root root 33 10-28 16:54 。/log2013.log

  -rw-r--r-- 1 root root 302108 11-03 06:19 。/log2012.log

  -rw-r--r-- 1 root root 25 10-28 17:02 。/log.log

  -rw-r--r-- 1 root root 37 10-28 17:07 。/log.txt

  -rw-r--r-- 1 root root 0 10-28 14:47 。/test3/log3-2.log

  -rw-r--r-- 1 root root 0 10-28 14:47 。/test3/log3-3.log

  -rw-r--r-- 1 root root 0 10-28 14:47 。/test3/log3-1.log

  [root@localhost test]#

説明:

上記の例では、findコマンドは現在のディレクトリのすべての一般ファイルに一致し、-execオプションでls-lコマンドを使用してリストされます。

インスタンス2:ディレクトリ内でn日以前に変更されたファイルを検索し、削除します。

コマンド:

  find 。 -type f -mtime +14 -exec rm {} \;

出力:

コードは次のとおりです。

  [root@localhost test]# ll

合計328

  -rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log

  -rw-r--r-- 1 root root 33 10-28 16:54 log2013.log

  -rw-r--r-- 1 root root 127 10-28 16:51 log2014.log

  lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -》 log.log

  -rw-r--r-- 1 root root 25 10-28 17:02 log.log

  -rw-r--r-- 1 root root 37 10-28 17:07 log.txt

  drwxr-xr-x 6 root root 4096 10-27 01:58 scf

  drwxrwxrwx 2 root root 4096 10-28 14:47 test3

  drwxrwxrwx 2 root root 4096 10-28 14:47 test4

  [root@localhost test]# find 。 -type f -mtime +14 -exec rm {} \;

  [root@localhost test]# ll

合計312

  -rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log

  lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -》 log.log

  drwxr-xr-x 6 root root 4096 10-27 01:58 scf

  drwxrwxrwx 2 root root 4096 11-12 19:32 test3

  drwxrwxrwx 2 root root 4096 11-12 19:32 test4

  [root@localhost test]#

説明:

shellで任意の方法でファイルを削除する前に、対応するファイルを確認してください。気をつけてください。mvやrmなどのコマンドを使用する場合は、-execオプションのセキュリティモードを使用します。一致するファイルごとに操作する前にプロンプトが表示されます。

インスタンス3:ディレクトリ内でn日以前に変更されたファイルを検索して削除し、削除する前にヒントを与えます。

コマンド:

  find 。 -name “*.log” -mtime +5 -ok rm {} \;

出力:

コードは次のとおりです。

  [root@localhost test]# ll

合計312

  -rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log

  lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -》 log.log

  drwxr-xr-x 6 root root 4096 10-27 01:58 scf

  drwxrwxrwx 2 root root 4096 11-12 19:32 test3

  drwxrwxrwx 2 root root 4096 11-12 19:32 test4

  [root@localhost test]# find 。 -name “*.log” -mtime +5 -ok rm {} \;

  《 rm 。。。 。/log_link.log 》 ? y

  《 rm 。。。 。/log2012.log 》 ? n

  [root@localhost test]# ll

合計312

  -rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log

  drwxr-xr-x 6 root root 4096 10-27 01:58 scf

  drwxrwxrwx 2 root root 4096 11-12 19:32 test3

  drwxrwxrwx 2 root root 4096 11-12 19:32 test4

  [root@localhost test]#

説明:

上記の例では、findコマンドは、現在のディレクトリ内のすべてのファイル名を検索する.logの末尾、変更時間が5日以上のファイルを削除しますが、削除する前にヒントを与えます。yキーを押してファイルを削除し、nキーを押して削除しません。

例4:-execでgrepコマンドを使用

コマンド:

  find /etc -name “passwd*” -exec grep “root” {} \;

出力:

コードは次のとおりです。

  [root@localhost test]# find /etc -name “passwd*” -exec grep “root” {} \;

  root:x:0:0:root:/root:/bin/bash

  root:x:0:0:root:/root:/bin/bash

  [root@localhost test]#

説明:

任意の形式のコマンドは-execオプションで使用できます。上記の例ではgrepコマンドを使用します。findコマンドは、passwd、passwdなどのすべてのファイル名の「passwd*」と一致する.old、passwd.bak、grepコマンドを実行して、これらのファイルにrootユーザーが存在するかどうかを確認します。

2 合計3ページ インスタンス5:ファイルを検索して指定したディレクトリに移動

コマンド:

  find 。 -name “*.log” -exec mv {} 。。 \;

出力:

コードは次のとおりです。

  [root@localhost test]# ll

合計12 drwxr-xr-x 6 root root 4096 10-27 01:58 scf

  drwxrwxr-x 2 root root 4096 11-12 22:49 test3

  drwxrwxr-x 2 root root 4096 11-12 19:32 test4

  [root@localhost test]# cd test3/

  [root@localhost test3]# ll

合計304

  -rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log

  -rw-r--r-- 1 root root 61 11-12 22:44 log2013.log

  -rw-r--r-- 1 root root 0 11-12 22:25 log2014.log

  [root@localhost test3]# find 。 -name “*.log” -exec mv {} 。。 \;

  [root@localhost test3]# ll

合計0root@localhost test3]# cd 。。

  [root@localhost test]# ll

合計316

  -rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log

  -rw-r--r-- 1 root root 61 11-12 22:44 log2013.log

  -rw-r--r-- 1 root root 0 11-12 22:25 log2014.log

  drwxr-xr-x 6 root root 4096 10-27 01:58 scf

  drwxrwxr-x 2 root root 4096 11-12 22:50 test3

  drwxrwxr-x 2 root root 4096 11-12 19:32 test4

  [root@localhost test]#

例6:execオプションでcpコマンドを実行する

コマンド:

  find 。 -name “*.log” -exec cp {} test3 \;

出力:

コードは次のとおりです。

  [root@localhost test3]# ll

合計0root@localhost test3]# cd 。。

  [root@localhost test]# ll

合計316

  -rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log

  -rw-r--r-- 1 root root 61 11-12 22:44 log2013.log

  -rw-r--r-- 1 root root 0 11-12 22:25 log2014.log

  drwxr-xr-x 6 root root 4096 10-27 01:58 scf

  drwxrwxr-x 2 root root 4096 11-12 22:50 test3

  drwxrwxr-x 2 root root 4096 11-12 19:32 test4

  [root@localhost test]# find 。 -name “*.log” -exec cp {} test3 \;

cp:「./test 3/log 2014.log」および「test 3/log 2014.log」は同じファイル

cp:「./test 3/log 2013.log」および「test 3/log 2013.log」は同じファイル

cp:「./test 3/log 2012.log」および「test 3/log 2012.log」は同じファイル

  [root@localhost test]# cd test3

  [root@localhost test3]# ll

合計304

  -rw-r--r-- 1 root root 302108 11-12 22:54 log2012.log

  -rw-r--r-- 1 root root 61 11-12 22:54 log2013.log

  -rw-r--r-- 1 root root 0 11-12 22:54 log2014.log

  [root@localhost test3]#

Linux findコマンドの-execパラメータの使い方を説明しましたが、findコマンドのパラメータはまだたくさんあります。他のパラメータの使用を知りたい場合は、Linux findコマンドの-path-pruneパラメータの役割を参照してください。


ソース元URL:https://dopubox.com/article/p/d357da49c8a16c5e

其他工具
  • 字元計數 TikTok 下載 抖音下載 BASE64 Base64 轉圖片 圖片轉 Base64 URL 編碼 JavaScript 時間戳 Unicode 轉換器 JSON 格式化 修改副檔名 製作列表 CSS 優化器 MD5 加密 隨機生成器 圖像壓縮 QR 碼生成器 QR 碼識別器 壁紙預覽 圖片 EXIF 血型遺傳 服裝尺寸 app.tool_clock
  • ジョン・レノンのギター4億5千万円で落札
    2024-05-30

    藤井聡太八冠、瀬戸際の戦い 将棋叡王戦、31日に第4局
    2024-05-29

    藤井聡太八冠が勝ち、最終局へ 将棋叡王戦で2勝2敗
    2024-05-31

    むのたけじ賞、名称変更 「生前に障害者差別発言」
    2024-05-31

    【大河ドラマ「光る君へ」本日第22話】紫式部と清少納言は「顔を合わせていなかった」?
    2024-06-01

    小学館「作家の意向第一に協議」 映像化指針、ドラマ原作者死去で
    2024-06-03

    万博無料招待、大阪の学校7割が希望 「不参加」の選択肢ない調査手法に批判も
    2024-06-03

    応挙手本?に描いたトラ甦れ…徳島の寺のふすま絵修復へ
    2024-06-04

    稀代のピアニスト、マルタ・アルゲリッチの伝説の始まりはこの1曲から【クラシック今日は何の日?】
    2024-06-04

    知ってる? 「登録博物館等マーク」
    2024-06-05

    第34回福岡アジア文化賞受賞者が決定。大賞は真鍋大度
    2024-06-04

    GROUP「島をつくる | Planning Another Island」(マイナビアートスクエア)開幕レポート。高層ビルのなかで建築をコンポストする
    2024-06-05

    「TRIO パリ・東京・大阪 モダンアート・コレクション」(東京国立近代美術館)開幕レポート。トリオで再発見する3館のコレクション
    2024-06-05

    開館10周年を記念。「広重 ─摺の極─」があべのハルカス美術館で開催へ
    2024-06-05

    石川九楊の個展「石川九楊大全」が上野の森美術館で2ヶ月連続開催へ
    2024-06-05

    PARCELで「Not Quite」開催。「~でなくもない」作家が集結
    2024-06-04

    週末見たい展覧会5選。今週はTRIO展、吉田克朗展、建築の構造デザインに焦点を当てた展覧会など。【2024年6月第2週】
    2024-06-05

    島左近の墓、京都の寺で発掘調査 三成の腹心、関ケ原後も生存?
    2024-06-05

    「再会長江」北京で特別上映 竹内監督のトークイベントも
    2024-06-04

    岡田将生の初ブランド「IN MY DEN」始動、第1弾グッズの受注販売がスタート
    2024-06-06

    ©  Dopu Box
    💛