findを使用してディレクトリ内の特定のファイル名を返します(パスなし)。

findを使用してディレクトリ内の特定のファイル名を返します(パスなし)。

特定のファイル名を持つファイルを返すために使用したいと思いますfind。この場合_

使えることを学びました

find . ! '(' -name '_*' ')'

しかし、古いパス名なしでファイル名を返したいと思います。basenamebashでcmdを使用してこれを行う方法はありますか?

また、これを行うことができる他のコマンドも開いていますls

ベストアンサー1

はい、-を使用してジョブにbasenameパラメータとして渡すことができます。-exec

find . ! -name '_*' -exec basename {} \;

(演算子優先順位の問題がないため、グループ化角括弧は必要ありません。)

または、GNUがある場合、findその-printf操作は一般的なファイル名のフォーマット指定子を提供します。

     %f     File's  name  with  any leading directories removed (only
            the last element).

だから

find . ! -name '_*' -printf '%f\n'

おすすめ記事