すべてのファイルを削除するパイプのファイル名を作成するには?

すべてのファイルを削除するパイプのファイル名を作成するには?

だから、次のパイプを使用して現在のディレクトリのすべてのファイルを削除したいと思います。

ls | sed -rn 's/(.*)\.jpg$/mv -n & \1.jpeg/pi' | sh

上記のパイプラインを実行すると、というファイルを生成する方法は、現在のディレクトリ内のすべてのファイルを削除します。したがって、コードの挿入を介して。

このファイルを生成するために使用されたコマンドを入力してください。

ベストアンサー1

上記のコマンドは、(やや不器用に)すべての現在のファイルの名前を* .jpgから* .jpegに直接変更します。すべてのファイルを削除するように変更できますが、操作には適していません。

ただし、上記のコマンドが見つかった場合は、現在のディレクトリ内のすべてのエントリが削除されるように適切なファイル名を作成しようとしているようです。これは確かに達成可能です(たとえ動機に疑問を提起することになりますが…)。

婦人声明:これによりダメージを受ける可能性があります。注意すべきことを破らないように、まずテストすることはすべてあなた次第です。そして、あなたが自分のシステムで悪意を持ってこのことをすることが摘発された場合、対象はあなたに対して法的措置を講じることを期待します。

今これはもはや問題ではありません。 sed 入力に一致するファイルを生成したいが、依然として必要な操作を実行する適切な出力を生成します。

;rm *;.jpg名前付きファイルを生成します(または;rm -rf *;.jpgより積極的に削除)。 sed 部分を介して実行し、以下を介して実行される操作を確認できます。

  • echo ";rm * ; .jpg" | sed -rn 's/(.*)\.jpg$/mv -n & \1.jpeg/pi'

編集:注:リストされたコマンドは、ユーザーが実行したときに必要なすべての操作を(ほぼ)実行できます。すべてのファイルを削除することは、この弱点を利用するやや想像力の欠如(そして破壊的な)悪用です。もっと多彩な(そして反転しやすい)ことを考えてみましょうか?

おすすめ記事