Unixコマンドでディレクトリパスを一覧表示する

Unixコマンドでディレクトリパスを一覧表示する

.txt ファイルを含むすべてのディレクトリ パスをリストする必要があります。

たとえば、パス /geek/user/temp.txt があります。パス /geek/user を出力として取得する必要があります。どなたかアドバイスをお願いします。

答え1

Windowsの場合は、コマンドプロンプト(cmd)で(CD) をルート フォルダーに追加します。

for /r %a in (.) do @if exist "%~fa\*.txt" echo %~fa

または、.上記をルート フォルダーへのパスに置き換えます。

Linux の場合、次の 2 つのコマンドが使用できます。

find . -type f -name '*.txt' | sed -r 's|/[^/]+$||' | sort -u
find . -type f -name '*.txt' -printf '%h\n' | sort -u

MacOSの場合:

find . -type f -name '*.txt' | sed -E 's|/[^/]+$||' | sort -u

関連情報