findの使用はかなり進んでいると思いますが、使用するたびに-execオプションを閉じる方法を思い出せません。私はそれを使うたびに読書にかなりの時間を費やしています。私は単にそれを十分に使用していないか、自分自身を期待しすぎていませんか?イライラする典型的な例から始めましょう。
ディレクトリ構造には、すべての不正なアクセス許可が隠されたファイルシンボリックリンクなどのファイルがあります。所有権を妥当な値に変更したい
find . -type f -exec chown username {} \;
find . -type d -exec chown username {} \;
find . -type d -exec chgrp usergroup {} \;
find . -type f -exec chgrp usergroup {} \;
(エンディングが後方にある場合は私を許してください...私は1時間前にそれを見て、それでも私はわからない)
しかし、マウント、シンボリックリンクなどのために実行するのが怖いです。chmod。*の究極の愚かさを作り、以前にそれを上に再帰させました。-xdevはパーティションをまたぐことを忘れますが、シンボリックリンクであるディレクトリ内にあるファイルがどうなるかはわかりません。
それでは、重要なファイルを殺すことができるこの獣をどうやってマスターするのでしょうか?
以下の最適な提案の整理と要約を更新します。
- 他の練習ディレクトリにリンクしてマウントした練習ディレクトリを用意します。
- 直感的でないexecコマンドではなくxargsを使用してください。
- 健全性と安全性のために-exec echo {}を使用します
- セミコロンは特別であり、あなたはそれをエスケープしているので、エスケープ文字が最初です
- -orコマンドは、選択基準を組み合わせるのに役立ちます。
私はprint0について少し混乱していますが、xargsは、私が試し、回避しようとする、一目で理解するのが容易ではないことについて、常に少しばかりです。