-exec echo {}オプションと一緒に使用するときにfindコマンド出力から先行点を削除する

-exec echo {}オプションと一緒に使用するときにfindコマンド出力から先行点を削除する
find . -type f -exec  echo {} \;

上記のコマンドを使用して、先行する "./"文字なしでファイル名を取得したいと思います。基本的に次のようになりたいです。

filename

変える:

./filename

これを行う方法はありますか?

ベストアンサー1

*代わりに使用する.と、行間隔が./消えます。

find * -type f

シェルは最初に、それを*現在の作業ディレクトリにある隠されていない(デフォルト)ファイルのソートされたリストに展開し、それを.に渡しますfind。これには次のような重要な意味があります。

  • 隠しファイルは最上位レベルでは省略されますが、より深いレベルでは(検索されたファイルによって)省略findされます。
  • リストは最上位レベル(通常はプラス記号)でソートされます。
  • 現在の作業ディレクトリにファイルが多い場合は、コマンドに渡すことができる引数の数に制限がある可能性があります。
  • !この方法は、名前という名前のファイルがある場合、または名前がで始まる場合は機能しません。名前のファイルがある場合は深刻な結果を招く可能性があります()--delete

おすすめ記事