私はBrian Wardの「How Linux Works」を読んでいましたが、彼は「この形式を理解するまで-execのようなオプションを試してはいけません」と警告しました。
find -name file -print
これまで、私はこのフォームがなぜそれほど重要なのか理解していませんでした。名前に関係なく、特定の場所のディレクトリを検索したくないのはなぜですか?また、-print がデフォルトのオプションであるように見え、マンページでは一部のファイル名に改行文字を含めることができるため、-print0 を使用することを強くお勧めします。
答え1
著者は、読者に-exec
このコマンドの構造と方法を理解せずにこのコマンドを試みないように警告しますfind
。
find -type d -print
たとえば、試してみるのも悪くありません。警告するしかし、これを実行するとどうなるかわかりますかfind -depth -type d -exec mv {} {}.surprise \;
?
何が起こるかを確認するには、mv
永続的な操作を行わないコマンドで置き換えるか、補足してください。
find -depth -type d -exec echo mv {} {}.surprise \;
の場合、-print0
これはパイプライン内で作業する場合にのみ便利です。 (しかし、他のユーティリティがNULで区切られたレコードをサポートする場合に便利です。)find
目視検査のために出力を一覧表示するには、代わりにを使用します-print
。
PS。ファイルシステムの重要な部分から危険なコマンドの実行を回復したい場合は、次のことができます。おそらくランニングfind -depth -type d -print0 | while IFS= read -r -d '' d; do mv "$d" "${d%.surprise}"; done
。しかし、安全な場所で試してみることをお勧めします/tmp
。